Maven-Ant-Task 使用手记
- 博客分类:
- java
Maven的依赖管理的确是个好东西。但在集成构建方面,Ant显然更好。今天试用了一下maven-ant-task这个工具,感觉非常不错。可以在ant中调用maven的依赖
首先需要定义maven-ant-task,以及maven的pom路径
在编译时使用之前定义好的classpath
一个完整的build.xml
首先需要定义maven-ant-task,以及maven的pom路径
- <!--使用Maven2依赖管理 -->
- <path id="maven-ant-tasks.classpath"
- path="lib/maven-ant-tasks-2.0.8.jar" />
- <typedef resource="org/apache/maven/artifact/ant/antlib.xml"
- uri="urn:maven-artifact-ant"
- classpathref="maven-ant-tasks.classpath" />
- <!--定义Maven2变量-->
- <artifact:pom id="maven.project" file="pom.xml" />
- <artifact:dependencies pathId="maven.classpath"
- filesetid="maven.fileset">
- <pom refid="maven.project" />
- </artifact:dependencies>
在编译时使用之前定义好的classpath
- <javac srcdir="${src}" destdir="${build.classes}"
- classpathref="maven.classpath" />
一个完整的build.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <project name="elitemark-commons" default="build"
- xmlns:artifact="urn:maven-artifact-ant">
- <description>Elitemark lightweight commons API</description>
- <property file="build.properties" />
- <target name="clean"
- description="Cleans up the build artifacts and temporary directories">
- <delete dir="${dist}" />
- <delete dir="${build.classes}" />
- <delete dir="${build.test}" />
- <delete dir="${build.javadoc}" />
- </target>
- <target name="init">
- <!--使用Maven2依赖管理 -->
- <path id="maven-ant-tasks.classpath"
- path="lib/maven-ant-tasks-2.0.8.jar" />
- <typedef resource="org/apache/maven/artifact/ant/antlib.xml"
- uri="urn:maven-artifact-ant"
- classpathref="maven-ant-tasks.classpath" />
- <!--定义Maven2变量-->
- <artifact:pom id="maven.project" file="pom.xml" />
- <artifact:dependencies pathId="maven.classpath"
- filesetid="maven.fileset">
- <pom refid="maven.project" />
- </artifact:dependencies>
- </target>
- <target name="compile" depends="init">
- <mkdir dir="${build.classes}" />
- <javac srcdir="${src}" destdir="${build.classes}"
- classpathref="maven.classpath" />
- <copy todir="${build.classes}" includeEmptyDirs="no">
- <fileset dir="${res}">
- <include name="**/*" />
- </fileset>
- </copy>
- </target>
- <target name="jar-all">
- <mkdir dir="${dist}" />
- <delete file="${dist}/${artifactId}-${version}.jar"
- failonerror="false" />
- <jar destfile="${dist}/${artifactId}-${version}.jar"
- basedir="${build.classes}" encoding="UTF-8">
- <manifest>
- <attribute name="Implementation-Title"
- value="${app.name}" />
- <attribute name="Implementation-Version"
- value="${versionNumber}" />
- <attribute name="Implementation-Vendor"
- value="${vendor}" />
- </manifest>
- </jar>
- </target>
- <target name="javadoc" depends="init">
- <mkdir dir="${build.javadoc}" />
- <javadoc packagenames="org.elitemark.commons.*"
- sourcepath="${src}" defaultexcludes="yes" destdir="${build.javadoc}"
- author="true" version="true" use="true" windowtitle="${app.name}"
- classpathref="maven.classpath" encoding="UTF-8" docencoding="UTF-8"
- header="<meta http-equiv='Content-Type' content='text/html;charset=UTF-8' />">
- <doctitle>
- <![CDATA[<h1>Elitemark lightweight commons API</h1>]]>
- </doctitle>
- <bottom>
- <![CDATA[<i>Copyright © 2007-2008 www.elitemark.org All Rights Reserved.</i>]]>
- </bottom>
- <link href="http://www.elitemark.org/javadoc/" />
- </javadoc>
- </target>
- <target name="build" depends="clean,compile">
- <antcall target="jar-all"></antcall>
- </target>
- </project>