maven有兩種生成可執行jar包的插件,能夠自動加載依賴包。分別爲 maven-assembly-plugin 和appassembler-maven-plugin, appassembler-maven-plugin 的優勢是能夠自動生成window和linux的啓動腳本, maven-assembly-plugin 生成jar包後需要執行 java -jar **.jar命令運行jar包。
以上兩種插件分別需要在pom文件中添加以下插件plugin:
maven-assembly-plugin使用方式如下
- <plugin>
- <artifactId>maven-assembly-plugin</artifactId>
- <configuration>
- <appendAssemblyId>false</appendAssemblyId>
- <descriptorRefs>
- <descriptorRef>jar-with-dependencies</descriptorRef>
- </descriptorRefs>
- <archive>
- <manifest>
- <mainClass>*.account.core.GenerateAccount</mainClass>
- </manifest>
- </archive>
- </configuration>
- <executions>
- <execution>
- <id>make-assembly</id>
- <phase>package</phase>
- <goals>
- <goal>assembly</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
執行命令:mvn assembly:assembly
工程target目錄下會自動生成的jar包,依賴包也包含在jar包裏,然後手動執行java -jar *.jar即可執行。
appassembler-maven-plugin使用方式如下
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>appassembler-maven-plugin</artifactId>
- <version>1.1.1</version>
- <configuration>
- <programs>
- <program>
- <mainClass>*.account.core.GenerateAccount</mainClass>
- <name>ucenter</name>
- </program>
- </programs>
- </configuration>
- </plugin>
執行命令:mvn package appassembler:assemble,會自動生成jar包
然後執行sh target/appassembler/bin/account 即可執行jar包,account是l生成的inux下的啓動腳本