通常我們將應用部署到服務器的某個目錄下,一般情況下我們會提供像target(存放應用jar包),bin(項目啟動/停止腳本),config(項目配置文件),logs(項目輸出日志)之類的目錄。
maven-assembly-plugin
這個插件非常適合用于打包應用程序以便于發布或部署。它是 Apache Maven 中的一個插件,它允許你根據自定義的描述符文件(通常是 assembly.xml
)來創建各種格式的歸檔文件(如 ZIP、JAR、TAR.GZ 等),可以輕松的將項目構建輸出、依賴庫、模塊、站點文檔以及其他指定的文件進行打包。
1、修改項目結構添加assembly和bin文件夾。assembly文件夾中的assembly.xml來配置打包規則,bin文件夾中放置啟動/停止腳本。
2、簡單配置assembly.xml
<assembly xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3"xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.3 http://maven.apache.org/xsd/assembly-1.1.3.xsd"><id>deploy</id><formats><format>dir</format><format>tar.gz</format><format>zip</format></formats><includeBaseDirectory>false</includeBaseDirectory><fileSets><fileSet><directory>./config/</directory><includes><include>**</include></includes><outputDirectory>config</outputDirectory></fileSet><fileSet><directory>./bin/</directory><includes><include>**</include></includes><outputDirectory>bin</outputDirectory><fileMode>0755</fileMode></fileSet></fileSets><files><file><source>target/${artifactId}-${project.version}.jar</source><destName>${project.artifactId}.jar</destName><outputDirectory>./target/</outputDirectory></file><file><source>src/main/resources/application.yml</source><outputDirectory>./config/</outputDirectory></file></files>
</assembly>
3、修改pom文件的<build>標簽內容添加maven-assembly-plugin
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-assembly-plugin</artifactId><executions><execution><id>make-assembly</id><phase>package</phase><goals><goal>single</goal></goals><configuration><appendAssemblyId>true</appendAssemblyId><descriptors><descriptor>./assembly/assembly.xml</descriptor></descriptors></configuration></execution></executions></plugin></plugins>
</build>
4、使用maven打包看效果