快速业务通道

初学maven(4)-使用maven ant task实现非标准打包 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
build.finalName}是最终的名称。

初学maven(4)-使用maven ant task实现非标准打包(4)

时间:2011-06-27 BlogJava aoxj

pom的内容可以参考这两个官方资料:

1) maven model

http://maven.apache.org/ref/2.0.9/maven-model/maven.html

2) Introduction to the POM

http://maven.apache.org/guides/introduction/introduction-to-the-pom.html

标准目录布局可以参考这个官方资料:

http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

3.2 compile

这里是maven ant task的精髓所在,

<targetname="compile"description="description"depends="init_maven">      <javacsrcdir="${maven.project.build.sourceDirectory}"destdir="${maven.project.build.outputDirectory}"classpathref="classpath.build"/>    </target>

结合之前maven初始化时的情况:

<artifact:pomid="maven.project"file="pom.xml"/>      <artifact:dependenciespathId="classpath.build"filesetid="maven.fileset.build">        <pomrefid="maven.project"/>      </artifact:dependencies>

可以看到,我们的项目完全遵循maven的标准做法,然后ant通过访问pom来得到相关的路径信息和classpath信息,完美结合。

target copyResource 完成了将resource copy到outputDirectory的任务,这里的resource都是classpath resource。

注: 这个有个问题,就是我没有找到通过pom得到resouce目录的方法,${maven.project.build.resources 只能得到pom文件中<resources/>, 对于里面包含的<resource>不知道该用什么方式来访问,如默认的:

<resources>     <resource>      <directory>src/main/resources</directory>     </resource>    </resources>

我试过用${maven.project.build.resources[0];${maven.project.build.resources(0), ${maven.project.build.resources.0,${maven.project.build.resources.resource

等都无效。找了很久都没有找到资料,只好作罢。直接写死src/main/resources吧。

初学maven(4)-使用maven ant task实现非标准打包(5)

时间:2011-06-27 BlogJava aoxj

3.3 jar

和compile类似,标准的ant jar,然后通过访问pom来得到相关的路径信息和打包文件名。注意这里的文件名和路径和maven的做法一致,也就是说和执行maven的compile命令结果是一样的。

<targetname="jar"depends="compile,copyResource">      <deletefile="${maven.project.build.directory}/${maven.project.build.finalName}.jar" failonerror="false"/>      <jardestfile="${maven.project.build.directory}/${maven.project.build.finalName}.jar"basedir="${maven.project.build.outputDirectory}">      </jar>    </target>

3.4 package, zip

package_prepare, copyLib, copyConfig, copyBin 这几个target都简单,体力活而已。zip也是。

4. 总结

上面的内容虽多,但是总结起来就只有两点:

1. maven ant task可以将maven的功能和ant的灵活性统一起来,对于非标准的打包情况非常适用

2. maven ant task的使用并不难,不过需要掌握不少maven的基本知识,比如pom,标准目录布局等。

另外,似乎,ant + Ivy会是更好的选择?

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号