简介
Application Assembler Maven Plugin插件是一个Maven插件,用于生成用于启动Java应用程序的脚本。 项目本身的所有依赖关系和工件都放置在已生成的Maven存储库中的已定义汇编目录中。 所有构件(依赖关系+项目中的构件)都将添加到生成的bin脚本中的classpath路径中。
支持平台:
Unix版本
Windows NT(不支持Windows 9x)
Java服务包装器(JSW)
默认生成器以外的其他生成器支持不同的平台,具体取决于生成器针对的工具的可用性。
官网
http://www.mojohaus.org/appassembler/appassembler-maven-plugin/
使用
- Pom中添加
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/${project.name}/classes</outputDirectory>
<resources>
<resource>
<directory>${project.build.directory}/classes</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<version>2.1.0</version>
<configuration>
<!-- 生成linux, windows两种平台的执行脚本 -->
<platforms>
<platform>windows</platform>
<platform>unix</platform>
</platforms>
<!-- 根目录 -->
<assembleDirectory>${project.build.directory}/${project.name}</assembleDirectory>
<!-- 打包的jar,以及maven依赖的jar放到这个目录里面 -->
<repositoryName>lib</repositoryName>
<!-- 可执行脚本的目录 -->
<binFolder>bin</binFolder>
<!-- lib目录中jar的存放规则,默认是${groupId}/${artifactId}的目录格式,flat表示直接把jar放到lib目录 -->
<repositoryLayout>flat</repositoryLayout>
<encoding>UTF-8</encoding>
<logsDirectory>logs</logsDirectory>
<tempDirectory>tmp</tempDirectory>
<programs>
<program>
<!-- 启动类 -->
<mainClass>org.ko.web.Application</mainClass>
<jvmSettings>
<extraArguments>
<extraArgument>-server</extraArgument>
<extraArgument>-Xmx2G</extraArgument>
<extraArgument>-Xms2G</extraArgument>
</extraArguments>
</jvmSettings>
</program>
</programs>
</configuration>
</plugin>
</plugins>
</build>
- 修改启动的主类为自己的main入口
<!-- 启动类 -->
<mainClass>org.ko.web.Application</mainClass>
- 使用maven命令打包
mvn clean package appassembler:assemble
- 找到bin目录下脚本中CLASSPATH, 在后面添加:”%BASEDIR%”\classes;命令行过长,set CLASSPATH时REPO有可能过多, 使用通配符
set CLASSPATH="%BASEDIR%"\classes;"%REPO%"\*;
- 记得同步各个平台下的脚本文件