pom中打包插件安装
其中${maven.build.timestamp}为maven中的时间戳默认为时区格式,需要在pom的文件中添加属性
<properties>
<maven.build.timestamp.format>yyyyMMddHHmmss</maven.build.timestamp.format>
</properties>进行格式化。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> <finalName>${project.artifactId}-${maven.build.timestamp}</finalName> <appendAssemblyId>false</appendAssemblyId> <attach>false</attach> <descriptors> <!-- 这个是assembly 所在位置 --> <descriptor>src/main/assembly/assembly.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> src\assembly\assembly.xml是在项目src目录下创建的
assembly.xml的内容如下
<assembly> <id>assembly</id> <formats> <!--打成的包的格式支持 zip,tar,tar.gz,tar.bz2,jar,dir,war 等 --> <format>zip</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <dependencySets> <dependencySet> <outputDirectory>lib</outputDirectory> </dependencySet> </dependencySets> <fileSets> <fileSet> <directory>${project.build.directory}/lib</directory> <outputDirectory>lib</outputDirectory> </fileSet> <fileSet> <directory>${project.build.directory}/classes/bin</directory> <outputDirectory>bin</outputDirectory> <fileMode>0755</fileMode> </fileSet> <fileSet> <directory>${project.build.directory}/classes/config</directory> <outputDirectory>config</outputDirectory> </fileSet> <fileSet> <directory>target/classes/</directory> <includes> <include>*.properties</include> <include>*.xml</include> <include>*.yml</include> </includes> <outputDirectory>config</outputDirectory> </fileSet> </fileSets> <files> <file> <source>${project.build.directory}/${project.artifactId}.jar</source> <outputDirectory>.</outputDirectory> </file> </files> </assembly>
最终将resource 下的资源打包到config 目录下, 将assembly下的bin 启动相关脚本打包到bin 目录下, 将maven项目依赖的所有jar 包, 打包到lib 中
编译之后的zip内容如下: