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