我想将spring-boot应用程序打包为jar,并使用打包mvn package。
mvn package
这将产生一个不包含任何/WEB-INF/jspnor 的jar /src/main/webapp/resources。
/WEB-INF/jsp
/src/main/webapp/resources
我如何确保我的jar里装有所有需要的东西?
这是我目前的情况pom.xml:
pom.xml
<modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-samples</artifactId> <version>1.0.0.RC3</version> </parent> <packaging>jar</packaging> <properties> <main.basedir>${basedir}/../..</main.basedir> <m2eclipse.wtp.contextRoot>/</m2eclipse.wtp.contextRoot> </properties> <dependencies> <dependency> <groupId>${project.groupId}</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>${project.groupId}</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> </dependency> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>9.3-1101-jdbc41</version> </dependency> </dependencies> <!-- Package as an executable JAR --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <useSystemClassLoader>false</useSystemClassLoader> </configuration> </plugin> </plugins> </build> <!-- Allow access to Spring milestones and snapshots --> <!-- (you don't need this if you are using anything after 1.0.0.RELEASE) --> <repositories> <repository> <id>spring-snapshots</id> <url>http://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>spring-milestones</id> <url>http://repo.spring.io/milestone</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-snapshots</id> <url>http://repo.spring.io/snapshot</url> </pluginRepository> <pluginRepository> <id>spring-milestones</id> <url>http://repo.spring.io/milestone</url> </pluginRepository> </pluginRepositories> <artifactId>com.example.app</artifactId>
以下示例适用于Spring Boot 1.3.3.RELEASE: https://github.com/ghillert/spring-boot- jsp-demo
关键是将静态jsp内容放入:
/src/main/resources/META-INF/resources/WEB-INF/jsp
并确保您在application.properties中定义视图前缀/后缀:
spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp