1. 程式人生 > >maven打可執行jar包及依賴jar包

maven打可執行jar包及依賴jar包

maven打可執行jar包,包含依賴jar包

maven安裝本地jar包到倉庫:

mvn install:install-file -DgroupId=com.alipay -DartifactId=alipay-pay-sdk -Dversion=1.0 -Dpackaging=jar -Dfile=C:\Users\Administrator\Desktop\alipay-sdk-java.jar

1、 準備一個package.xml檔案

package.xml檔案位置放在與pom.xml檔案同等級目錄下,
package.xml檔案內容如下:

<assembly xmlns
="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/assembly-1.0.0.xsd">
<id>distribution</id> <formats> <format>zip</format> </formats
>
<includeBaseDirectory>false</includeBaseDirectory> <fileSets> <fileSet> <directory>${project.build.directory}/bin</directory> </fileSet> </fileSets> </assembly>

2、配置pomx.ml檔案外掛

pom.xml檔案裡面加上外掛配置,內容如下:

<build
>
<finalName>leo-count-push</finalName> <pluginManagement> <plugins> <plugin> <groupId>org.eclipse.m2e</groupId> <artifactId>lifecycle-mapping</artifactId> <version>1.0.0</version> <configuration> <lifecycleMappingMetadata> <pluginExecutions> <pluginExecution> <pluginExecutionFilter> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <versionRange>[2.0,)</versionRange> <goals> <goal>copy-dependencies</goal> </goals> </pluginExecutionFilter> <action> <ignore /> </action> </pluginExecution> </pluginExecutions> </lifecycleMappingMetadata> </configuration> </plugin> </plugins> </pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>appassembler-maven-plugin</artifactId> <version>1.2</version> <executions> <execution> <id>make-bin</id> <phase>package</phase> <goals> <goal>assemble</goal> </goals> </execution> </executions> <configuration> <assembleDirectory>${project.build.directory}/bin</assembleDirectory> <binFileExtensions> <unix>.sh</unix> </binFileExtensions> <platforms> <platform>windows</platform> <platform>unix</platform> </platforms> <repositoryName>lib</repositoryName> <programs> <program> <mainClass>com.leo.main.Run</mainClass> <name>run-leo-count</name> </program> </programs> </configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <!-- not append assembly id in release file name --> <appendAssemblyId>false</appendAssemblyId> <descriptors> <descriptor>${project.basedir}/package.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>make-zip</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> </plugin> </plugins> </build>

到此為止,執行mvn clean package 命令就可以打可執行jar包了,打出來的包是一個zip包,只要把zip包解壓,然後進入bin目錄下可以看到有兩個指令碼,一個是*.sh,一個是*.bat,linux下執行sh指令碼就可以,windows執行bat指令碼就行。

注:這個方法打的jar包配置檔案目錄有點深入,且不能分環境打包,所以特意提供了一篇可以分環境打可執行jar包的文章,並且配置檔案目錄也在外層,方便操作。如果需要可以參考第二篇文章: