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>是打包方式

 

posted on 2012-08-31 10:57  過眼云煙  阅读(3161)  评论(0)    收藏  举报

导航