第一步,进入工程,cmd
mvn clean 删除target目录及里面内容
mvn compile 编译target目录下
mvn install =compile + package
mvn deploy
mvn dependency:tree 查看依赖的jar包
mvn package -Dmaven.test.skip=true :不执行测试用例,也不编译测试用例类
mvn package -DskipTests=true :不执行测试用例,但会编译测试用例类生成相应的class文件至target/test-classes
<properties><skipTests>true</skipTests></properties>
spring-boot- maven -plugin 插件 已经集成了maven-surefire-plugin插件
springboot的maven打包插件:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.1.RELEASE</version>
<configuration>
<!-- 配置使devtools生效 -->
<fork>true</fork>
<!-- 配置为 true,打包出来的 jar/war 就是可执行的,可以配置为linux的service启动,如果使用 jar -xf 等解压命令,将此配置改为false-->
<executable>true</executable>
<!-- 配置在使用第三方的jar包作为依赖,打包时,指定maven把scope为system的依赖同样打到jar包中去,需要配合dependency的<scope>system</scope>和<systemPath>${project.basedir}/libs/xxx-api-sdk-1.1.0.jar</systemPath>使用-->
<includeSystemScope>true</includeSystemScope>
</configuration>
<executions>
<execution>
<goals>
<!-- 配置在 mvn package 执行之后,再次打包生成可执行的 jar包。repackage生成jar包的名称与 mvn package 生成的原始 jar/war包名称相同,而原始 jar包被重命名为 *.origin。这样生成的*.jar可直接运行,但不能被其他项目模块依赖。这是因为repackage将项目的class都放在了jar包 BOOT-INF/classes 文件夹中,导致其他模块不能加载jar包中的 class。-->
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
boot使用这个插件可以将项目打包成一个可运行的jar,无需在目标服务器安装tomcat等
spring-boot-maven-plugin项目存在于spring-boot-tools 目录中spring-boot-maven-plugin默认 有5 个goals; repackage、 run、start、stop、 build-info
在打包的时候默认使用的是repackage。spring-boot-maven-plugin的repackage能够将mvn package生成的软件包,再次打包为可执行的软件包,并将mvn package生成的软件包重命名为*original。
这就为什么当执行maven clean package时,spring-boot-maven-plugin会在target目录下生成两个jar文件