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下的启动脚本