公共模块打包
模块中,会存在一些基础模块,供其它模块调用,这时,一定要修改父工程pom
或公共模块的pom
。否则会出现找不到依赖库
的问题。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<classifier>exec</classifier>
</configuration>
</plugin>
</plugins>
</build>
spring-boot工程打包编译时,会生成两种jar包,一种是普通的jar,另一种是可执行jar。默认情况下,这两种jar的名称相同,在不做配置的情况下,普通的jar先生成,可执行jar后生成,所以可执行jar会覆盖普通的jar。从而导致引用不成功。
修改了父工程pom后,子模块所有都会被打包成两种jar,一种普通的,一种可执行的,要启动可执行的jar,需要使用下面的命令。当然可以只针对于共享的模块设置,使其打包成两种
。
java -jar target\client-0.0.1-SNAPSHOT-exec.jar
spring-boot-maven-plugin
打包过程中自动为Manifest文件设置Main-Class,还可以手动设置。
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.7.RELEASE</version>
<configuration>
<mainClass>${start-class}</mainClass>
<layout>ZIP</layout>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
layout
- JAR,可执行jar
- WAR,可执行war
- ZIP,即DIR
- MODULE,将所有依赖库打包(scope为provided的除外)
- NONE,将所有的依赖库打包
跳过单元测试的配置
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>