Maven自动打包项目,生成启动批处理。
官网参数示例已经说的很清楚了,这里只是要点记述。
http://mojo.codehaus.org/appassembler/appassembler-maven-plugin/assemble-mojo.html
<build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>appassembler-maven-plugin</artifactId> <version>1.2.1</version> <configuration> <configurationDirectory>conf</configurationDirectory> <configurationSourceDirectory>conf</configurationSourceDirectory> <copyConfigurationDirectory>true</copyConfigurationDirectory> <includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath> <assembleDirectory>${project.build.directory}/MainServer</assembleDirectory> <binFileExtensions> <unix>.sh</unix> </binFileExtensions> <platforms> <platform>windows</platform> <platform>unix</platform> </platforms> <repositoryName>lib</repositoryName> <repositoryLayout>flat</repositoryLayout> <binFolder>bin</binFolder> <programs> <program> <mainClass>com.mypackage.MainServer</mainClass> <name>MainServer</name> </program> </programs> </configuration> </plugin> </plugins> </build>
打包后会自动在根目录下生成bin目录,依赖包会自动打包到lib目录下,conf是我的配置文件目录。
需要注意的是,使用<repositoryLayout>flat</repositoryLayout>属性会将jar打包到lib根目录,执行启动批处理,需要在项目目录执行bin\xx.bat,否则会找不到class或配置。
我的项目中,多个base工程被依赖,这些base工程需要先通过Maven install到本地库,才能被其他的项目引用、编译。之后,直接build即可自动将base工程打包成独立的jar被引入到目标工程。若你使用eclipse开发,推荐你使用M2插件来操作Maven。
另外:
<groupId>com.mypackage</groupId>表示你在maven库中的路径
<artifactId>MyProject</artifactId>是你maven路径下项目的名称
<packaging>jar</packaging>是打包方式
浙公网安备 33010602011771号