一、最終打包的目錄結構
二、項目結構
三、開始
1、最終打包的目錄,可根據自己需要修改。
<properties> <mzservice.path>${project.build.directory}/mzservice</mzservice.path> </properties>
2、配置清理插件,每次打包前,清理之前生成的打包目錄。
<plugin> <artifactId>maven-clean-plugin</artifactId> <version>2.5</version> <executions> <execution> <id>auto-clean</id> <phase>initialize</phase> <goals> <goal>clean</goal> </goals> <configuration> <skip>false</skip> <filesets> <fileset> <directory>${mzservice.path}</directory> </fileset> </filesets> </configuration> </execution> </executions> </plugin>
3、打包自己的項目為jar並放入lib目錄,不包含依賴。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <!--<finalName>myjar</finalName>--> <archive> <manifest> <addClasspath>true</addClasspath> <!--MANIFEST.MF 中 Class-Path 加入前綴--> <classpathPrefix>../lib/</classpathPrefix> <!--jar包不包含唯一版本標識--> <useUniqueVersions>false</useUniqueVersions> <mainClass>com.mz.mzservice.MzServiceApplication</mainClass> </manifest> <manifestEntries> <Class-Path>../config/</Class-Path> </manifestEntries> </archive> <!--不打包資源文件--> <excludes> <exclude>*/*.xml</exclude> <exclude>*/*/*.xml</exclude> </excludes> <outputDirectory>${mzservice.path}/lib/</outputDirectory> </configuration> </plugin>
4、將項目依賴的jar,復制到lib目錄。
<!--拷貝依賴 copy-dependencies--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy-dependencies</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory> ${mzservice.path}/lib/ </outputDirectory> </configuration> </execution> </executions> </plugin>
5、將項目resources下的文件,復制到config下。將bin下的啟動腳本復制到打包目錄,可根據自己的需求修改。
<!--拷貝資源文件 copy-resources--> <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-resources</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <resources> <resource> <directory>src/main/resources</directory> </resource> </resources> <outputDirectory>${mzservice.path}/config</outputDirectory> </configuration> </execution> <!--copy 腳本,把bin目錄下的文件復制到,打包目錄下--> <execution> <id>copy-bin</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <resources> <resource> <directory>bin/</directory> </resource> </resources> <outputDirectory>${mzservice.path}</outputDirectory> </configuration> </execution> </executions> </plugin>
6、跳過測試
<!--maven打包時,跳過測試--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin>
7、其它說明
網上有些其它文章會使用spring-boot-maven-plugin 這個插件打包項目jar,個人覺得這個插件是對其它插件的一些封裝,打包的jar會包含spring boot的一些東西,
測試之后覺得和
maven-jar-plugin打包的jar,使用上沒什么區別。有對這方面研究較深的朋友,望不吝賜教。