1. 添加pom
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.tang.CSVUtils</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>
jar-with-dependencies
</descriptorRef>
</descriptorRefs>
</configuration>
<!-- 加上下面这一段,使用 mvn package命令,不加则使用mvn assembly-->
<execution>
<id>make-assemble</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</plugin>
</plugins>
</build>
2. 打包
D:\projects\sunshine>mvn clean package
mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。
mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。
mvn clean deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。
由上面的分析可知主要区别如下,
package命令完成了项目编译、单元测试、打包功能,但没有把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
install命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,但没有布署到远程maven私服仓库
deploy命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
3. 跳过测试
mvn clean package -DskipTests
或者
mvn clean package -Dmaven.test.skip=true
-DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。
-Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。
4. 运行
java -jar target/spring-boot-scheduler-1.0.0.jar
5.springboot指定配置文件运行
创建三个配置文件如下:
application.properties内容如下:
spring.profiles.active=rabbit
如上配置,在运行时就会使用application-rabbit.properties配置文件运行,
如果rabbit改成test,那么运行时就会使用application-test.properties配置文件运行。
项目打包成jar包之后,在启动时,可以使用如下命令对使用的配置文件进行指定,也就是说对application.properties中的active值进行覆盖,命令如下:
java -jar -Dspring.profiles.active=test demo-0.0.1-SNAPSHOT.jar
6. 保持程序后台运行
$ java -jar test.jar & (& 表示后台运行)
$ nohup java -jar test.jar & (nohup表示不挂断,即不受当前窗口影响)
$ nohup java -jar test.jar >log_temp.txt & (将运行日志输入到log_temp.txt---jar包所在的目录)
在ubuntu下直接sudo java -jar test.jar &
或者进入root, java -jar test.jar &