獨(dú)立可執(zhí)行包
自動(dòng)化部署時(shí)咧叭,可以打包成一個(gè)獨(dú)立的可執(zhí)行的jar包,方便和docker結(jié)合制作獨(dú)立鏡像。相關(guān)配置:
<build>
<finalName>finalName</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
<!-- 主要配置:將引用的 jar 包打進(jìn)生成的 jar 文件的 BOOT-INF/lib 目錄中 -->
<resources>
<resource>
<directory>lib</directory>
<targetPath>lib</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
打包命令:
mvn clean package -D skipTests
將依賴包放到外面
當(dāng)手動(dòng)部署程序時(shí)谒兄,每次都要上傳動(dòng)輒幾十兆的包有點(diǎn)費(fèi)時(shí)独令,這時(shí)候可以考慮將依賴包放到外面的lib目錄端朵,有依賴變動(dòng)時(shí)改變相關(guān)包即可。有時(shí)候需要引進(jìn)本地包燃箭,同樣需要自動(dòng)打包到lib目錄并且在MANIFEST中引入冲呢。
本地依賴配置:
<dependency>
<groupId>com.taobao.api</groupId>
<artifactId>taobao-sdk</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/taobao-sdk-1.0.0.jar</systemPath>
</dependency>
打包相關(guān)配置:
<build>
<finalName>finalName</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.6</version>
<configuration>
<archive>
<manifest>
<mainClass>com.tj.server.Application</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
<manifestEntries>
<Class-Path>./</Class-Path>
<Class-Path>lib/taobao-sdk-1.0.0.jar</Class-Path>
</manifestEntries>
</archive>
<excludes>
<exclude>application*.yml</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
注意:本地文件的包名、寫入manifest的包名招狸、maven依賴配置的包名要一致敬拓。
打包命令:
mvn clean package -D skipTests
mvn dependency:copy-dependencies -DoutputDirectory=F:\\tj\\server\\target\\lib -DincludeScope=runtime
mvn dependency:copy-dependencies -DoutputDirectory=F:\\tj\\server\\target\\lib -DincludeScope=system