<properties>
<project.finalName>finalName</project.finalName>
<env>dev</env>
</properties>
<build>
<finalName>${project.finalName}</finalName>
<resources>
<resource>
<directory>src/main/resources</directory>
<!-- 根據(jù)輸入?yún)?shù)動態(tài)修改相關(guān)內(nèi)容 -->
<filtering>true</filtering>
<!-- 資源根目錄排除各環(huán)境的配置,防止在生成目錄中多余其它目錄 -->
<excludes>
<exclude>dev/**</exclude>
<exclude>test/**</exclude>
<exclude>pro/**</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources/${env}</directory>
<!-- 根據(jù)輸入?yún)?shù)動態(tài)修改相關(guān)內(nèi)容 -->
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- 配置文件轉(zhuǎn)移到config目錄 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<encoding>UTF-8</encoding>
<!-- 表示把配置文件拷到和jar包同一個(gè)路徑下 -->
<outputDirectory>
${project.build.directory}/conf
</outputDirectory>
<resources>
<resource>
<directory>${project.build.directory}/classes</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- The configuration of maven-jar-plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<!--生成的jar中不包含pom.xml和pom.properties這兩個(gè)文件-->
<addMavenDescriptor>false</addMavenDescriptor>
<manifest>
<!--是否要把第三方j(luò)ar放到manifest的classpath中-->
<addClasspath>true</addClasspath>
<!--生成的manifest中classpath的前綴煤率,因?yàn)橐训谌絡(luò)ar放到lib目錄下隅俘,所以classpath的前綴是lib/-->
<classpathPrefix>lib/</classpathPrefix>
<!--應(yīng)用的main class-->
<mainClass>***</mainClass>
<!-- MANIFEST.MF文件添加SNAPSHOT依賴包的時(shí)候府怯,不帶時(shí)間戳套鹅,直接使用SNAPSHOT -->
<useUniqueVersions>false</useUniqueVersions>
</manifest>
<manifestEntries>
<Class-Path>./conf/</Class-Path>
</manifestEntries>
</archive>
<!--過濾掉不希望包含在jar中的文件-->
<excludes>
<exclude>**/*.properties</exclude>
<exclude>**/*.xml</exclude>
</excludes>
</configuration>
</plugin>
<!-- 配置依賴jar打包到lib目錄 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!-- assembly配置 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4</version>
<!-- The configuration of the plugin -->
<configuration>
<!-- Specifies the configuration file of the assembly plugin -->
<descriptors>
<descriptor>src/main/assembly-package.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- 不打包test代碼 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
assembly-package.xml放到項(xiàng)目main目錄下
<assembly>
<id>bin</id>
<!-- 最終打包成一個(gè)用于發(fā)布的zip文件 -->
<formats>
<format>zip</format>
</formats>
<fileSets>
<!-- 把項(xiàng)目相關(guān)的說明文件蜜自,打包進(jìn)zip文件的根目錄 -->
<fileSet>
<directory>${project.basedir}</directory>
<outputDirectory>/</outputDirectory>
<includes>
<include>README*</include>
<include>LICENSE*</include>
<include>NOTICE*</include>
</includes>
</fileSet>
<!-- 把項(xiàng)目的配置文件坡脐,打包進(jìn)zip包的conf目錄 -->
<fileSet>
<directory>${project.build.directory}/conf</directory>
<outputDirectory>/${project.build.finalName}/conf</outputDirectory>
<directoryMode>0755</directoryMode>
<fileMode>0644</fileMode>
</fileSet>
<!-- 把項(xiàng)目依賴的jar包奥务,打包進(jìn)zip包的lib目錄 -->
<fileSet>
<directory>${project.build.directory}/lib</directory>
<outputDirectory>/${project.build.finalName}/lib</outputDirectory>
<directoryMode>0755</directoryMode>
<fileMode>0644</fileMode>
</fileSet>
<!-- 把項(xiàng)目編譯的jar包物独,打包進(jìn)zip包的根目錄 -->
<fileSet>
<directory>${project.build.directory}</directory>
<outputDirectory>/${project.build.finalName}</outputDirectory>
<includes>
<include>${project.build.finalName}.jar</include>
</includes>
</fileSet>
<!-- 把項(xiàng)目的腳本文件,打包進(jìn)zip包的bin目錄 -->
<fileSet>
<directory>${project.basedir}/src/bin</directory>
<outputDirectory>/bin</outputDirectory>
<directoryMode>0755</directoryMode>
<fileMode>0755</fileMode>
<lineEnding>unix</lineEnding>
<includes>
<include>**/*.sh</include>
<include>*.cfg</include>
</includes>
</fileSet>
<fileSet>
<directory>${project.basedir}/src/bin</directory>
<outputDirectory>/bin</outputDirectory>
<directoryMode>0755</directoryMode>
<fileMode>0755</fileMode>
<lineEnding>dos</lineEnding>
<includes>
<include>*.bat</include>
</includes>
</fileSet>
</fileSets>
</assembly>