之前一直用安裝的maven打包spring的javaweb項目,用的是mvn assembly:assembly打包,這次打包非web的spring項目,遇到許多問題,特記錄一下正確步驟。
1.配置pom.xml
這里不用assembly,因為assembly在打包時只會把第一次遇到的文件打入jar包,后面遇到的都會skip掉。也就是說assembly把我的Spring描述文件都忽略掉咯。報錯就是:找不到 spring-context.xml (我的配置spring的xml),所以這里用 maven-shade-plugin
1 <build> 2 <plugins> 3 <plugin> 4 <groupId>org.apache.maven.plugins</groupId> 5 <artifactId>maven-shade-plugin</artifactId> 6 <version>1.4</version> 7 <executions> 8 <execution> 9 <phase>package</phase> 10 <goals> 11 <goal>shade</goal> 12 </goals> 13 <configuration> 14 <transformers> 15 <transformer 16 implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 17 <mainClass>com.peak.App</mainClass> 18 </transformer> 19 <transformer 20 implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 21 <resource>META-INF/spring.handlers</resource> 22 </transformer> 23 <transformer 24 implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 25 <resource>META-INF/spring.schemas</resource> 26 </transformer> 27 <transformer 28 implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 29 <resource>META-INF/spring.tooling</resource> 30 </transformer> 31 </transformers> 32 </configuration> 33 </execution> 34 </executions> 35 </plugin> 36 </plugins> 37 </build>
2.idea中配置
因為idea集成了maven,所以這里不用特意安裝maven
3.clean and package (雙擊運行)