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 &