1、依赖jar:maven-ant-tasks-2.1.3.jar
2、使用自定义settings文件:settings.xml
3、build.xml中嵌入代码:
<?xml version="1.0" encoding="UTF-8"?>
<project name="yxd-cmp-cc" basedir="./" default="main" xmlns:ivy="antlib:fr.jayasoft.ivy.ant"
xmlns:artifact="antlib:org.apache.maven.artifact.ant">
<!--xmlns:artifact="urn:maven-artifact-ant">-->
<!--mvn properties-->
<property name="project.dir" value="../"/>
<property name="mvn.lib.dir" value="${project.root}/mvn/lib"/>
<property name="mvn.base.dir" value="../cc-emotion"/>
<property name="mvn.target.dir" value="${mvn.base.dir}/target"/>
<property name="mvn.src.dir" value="${mvn.base.dir}/src/main/java"/>
<property name="mvn.conf.dir" value="${mvn.base.dir}/src/main/resources"/>
<!--指定用哪个profile-->
<property name="mvn.jar.version" value="${mvn.env}"/>
<property name="mvn.jar.dir" value="${mvn.base.dir}/cc-emotion-${mvn.jar.version}.jar"/>
<property name="mvn.jar.boot.dir" value="${mvn.base.dir}/cc-emotion-${mvn.jar.version}.jar/BOOT-INF"/>
<property name="mvn.jar.classes.dir" value="${mvn.base.dir}/cc-emotion-${mvn.jar.version}.jar/BOOT-INF/classes"/>
<property name="mvn.jar.lib.dir" value="${mvn.base.dir}/cc-emotion-${mvn.jar.version}.jar/BOOT-INF/lib"/>
<!--<property name="mvn.home.dir" value="${mvn.home.path}"/>-->
<!-- mvn Java编译CLASSPATH -->
<path id="mvn-classpath">
<fileset dir="${mvn.lib.dir}"/>
</path>
<target name="mvn-init">
<mkdir dir="${mvn.target.dir}/classes"/>
</target>
<path id="maven-ant-tasks.classpath" path="${project.root}/mvn/maven-ant-tasks-2.1.3.jar"/>
<!--<typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant" classpathref="maven-ant-tasks.classpath"/>-->
<typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="antlib:org.apache.maven.artifact.ant" classpathref="maven-ant-tasks.classpath" />
<artifact:pom id="maven.project" file="${mvn.base.dir}/pom.xml" settingsfile="${project.root}/mvn/settings.xml" >
<profile id="${mvn.jar.version}" active="true"/>
</artifact:pom>
<!-- maven libs download -->
<target name="mvn-download-libs">
<artifact:dependencies filesetId="dependency.fileset" usescope="compile" pomrefid="maven.project"/>
<copy todir="${mvn.lib.dir}">
<fileset refid="dependency.fileset"/>
<mapper type="flatten"/>
</copy>
</target>
<target name="mvn-clean">
<artifact:mvn pom="${mvn.base.dir}/pom.xml" fork="true" mavenversion="3.0" args="clean"/>
</target>
<!-- maven compile -->
<target name="mvn-compile" depends="mvn-download-libs,mvn-init">
<javac destdir="${mvn.target.dir}/classes" target="1.6" debug="true" encoding="UTF-8" deprecation="false"
optimize="false" failοnerrοr="true">
<src path="${mvn.src.dir}"/>
<classpath refid="mvn-classpath"/>
</javac>
</target>
<!--maven package-->
<target name="mvn-package" depends="mvn-clean, mvn-compile">
<artifact:mvn pom="${mvn.base.dir}/pom.xml" fork="true" mavenversion="3.0">
<arg value="clean"/>
<arg value="package"/>
<arg value="-P${mvn.jar.version}"/>
<arg value="-DskipTests"/>
<jvmarg value="-Xmx1024m" />
</artifact:mvn>
<!-- jar拷贝-->
<copy todir="${rel.dir}/apps">
<fileset file="${mvn.target.dir}/cc-emotion-1.0.jar"/>
</copy>
<copy todir="${rel.dir}">
<fileset file="${mvn.base.dir}/assemble/restart.sh"/>
</copy>
</target>
</project>