分享

Maven-Ant-Task 使用手记

 KILLKISS 2012-10-30
Maven的依赖管理的确是个好东西。但在集成构建方面,Ant显然更好。今天试用了一下maven-ant-task这个工具,感觉非常不错。可以在ant中调用maven的依赖

首先需要定义maven-ant-task,以及maven的pom路径
Xml代码  收藏代码
  1. <!--使用Maven2依赖管理 -->  
  2. <path id="maven-ant-tasks.classpath"  
  3.     path="lib/maven-ant-tasks-2.0.8.jar" />  
  4. <typedef resource="org/apache/maven/artifact/ant/antlib.xml"  
  5.     uri="urn:maven-artifact-ant"  
  6.     classpathref="maven-ant-tasks.classpath" />  
  7.   
  8. <!--定义Maven2变量-->  
  9. <artifact:pom id="maven.project" file="pom.xml" />  
  10. <artifact:dependencies pathId="maven.classpath"  
  11.     filesetid="maven.fileset">  
  12.     <pom refid="maven.project" />  
  13. </artifact:dependencies>  


在编译时使用之前定义好的classpath
Xml代码  收藏代码
  1. <javac srcdir="${src}" destdir="${build.classes}"  
  2.     classpathref="maven.classpath" />  



一个完整的build.xml
Xml代码  收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <project name="elitemark-commons" default="build"  
  3.     xmlns:artifact="urn:maven-artifact-ant">  
  4.     <description>Elitemark lightweight commons API</description>  
  5.   
  6.     <property file="build.properties" />  
  7.   
  8.     <target name="clean"  
  9.         description="Cleans up the build artifacts and temporary directories">  
  10.         <delete dir="${dist}" />  
  11.         <delete dir="${build.classes}" />  
  12.         <delete dir="${build.test}" />  
  13.         <delete dir="${build.javadoc}" />  
  14.     </target>  
  15.   
  16.     <target name="init">  
  17.         <!--使用Maven2依赖管理 -->  
  18.         <path id="maven-ant-tasks.classpath"  
  19.             path="lib/maven-ant-tasks-2.0.8.jar" />  
  20.         <typedef resource="org/apache/maven/artifact/ant/antlib.xml"  
  21.             uri="urn:maven-artifact-ant"  
  22.             classpathref="maven-ant-tasks.classpath" />  
  23.   
  24.         <!--定义Maven2变量-->  
  25.         <artifact:pom id="maven.project" file="pom.xml" />  
  26.         <artifact:dependencies pathId="maven.classpath"  
  27.             filesetid="maven.fileset">  
  28.             <pom refid="maven.project" />  
  29.         </artifact:dependencies>  
  30.     </target>  
  31.   
  32.     <target name="compile" depends="init">  
  33.         <mkdir dir="${build.classes}" />  
  34.         <javac srcdir="${src}" destdir="${build.classes}"  
  35.             classpathref="maven.classpath" />  
  36.         <copy todir="${build.classes}" includeEmptyDirs="no">  
  37.             <fileset dir="${res}">  
  38.                 <include name="**/*" />  
  39.             </fileset>  
  40.         </copy>  
  41.     </target>  
  42.   
  43.     <target name="jar-all">  
  44.         <mkdir dir="${dist}" />  
  45.         <delete file="${dist}/${artifactId}-${version}.jar"  
  46.             failonerror="false" />  
  47.         <jar destfile="${dist}/${artifactId}-${version}.jar"  
  48.             basedir="${build.classes}" encoding="UTF-8">  
  49.             <manifest>  
  50.                 <attribute name="Implementation-Title"  
  51.                     value="${app.name}" />  
  52.                 <attribute name="Implementation-Version"  
  53.                     value="${versionNumber}" />  
  54.                 <attribute name="Implementation-Vendor"  
  55.                     value="${vendor}" />  
  56.             </manifest>  
  57.         </jar>  
  58.     </target>  
  59.   
  60.     <target name="javadoc" depends="init">  
  61.         <mkdir dir="${build.javadoc}" />  
  62.         <javadoc packagenames="org.elitemark.commons.*"  
  63.             sourcepath="${src}" defaultexcludes="yes" destdir="${build.javadoc}"  
  64.             author="true" version="true" use="true" windowtitle="${app.name}"  
  65.             classpathref="maven.classpath" encoding="UTF-8" docencoding="UTF-8"  
  66.             header="&lt;meta http-equiv='Content-Type' content='text/html;charset=UTF-8' /&gt;">  
  67.             <doctitle>  
  68.                 <![CDATA[<h1>Elitemark lightweight commons API</h1>]]>  
  69.             </doctitle>  
  70.             <bottom>  
  71.                 <![CDATA[<i>Copyright &#169; 2007-2008 www. All Rights Reserved.</i>]]>  
  72.             </bottom>  
  73.             <link href="http://www./javadoc/" />  
  74.         </javadoc>  
  75.     </target>  
  76.   
  77.     <target name="build" depends="clean,compile">  
  78.         <antcall target="jar-all"></antcall>  
  79.     </target>  
  80.   
  81. </project>  

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多