使用Ant / Ivy创建pom.xml和pom.properties并将它们嵌入到jar / war文件中

时间:2012-08-10 19:01:33

标签: ant ivy pom.xml

我们将Ant与Ivy一起使用,我想嵌入我们创建的罐子里并与pom.xmlpom.properties文件进行战争,就像你使用Maven一样。使用pom.xml任务,从ivy.xml文件创建<ivy:makepom>非常简单。获取artifactId和gorupId可以通过<xmlproperty>任务完成。但是,如何创建pom.properties文件。这有必要吗?

1 个答案:

答案 0 :(得分:2)

好的,在浏览文档时,我发现它比我想象的容易得多。常春藤产生了许多可以使用的属性。我还发现pom.xml文件只包含groupIdartifactIdversion,因此生成起来并不困难。

这就是我的所作所为:

<target name="package" depends="compile">

    <!-- Make the pom.xml -->
    <ivy:makepom ivyfile="${ivy.resolved.file}"
        pomfile="${target.dir}/pom.xml"/>

    <!-- Make the pom.properties file -->
    <echo file="${target.dir}/pom.properties">
# Generated by Maven NOT!
# ${build.date}
version=${ivy.revision}
groupId="${ivy.organisation}
artifactId="${ivy.module}
    </echo>

<!-- Build your JAR or whatever -->

    <jar destfile="${target.dir}/{ant.project.name}.jar"
         basedir="${main.destdir}">
         <manifest>
              <section name="Build-Information">
                  <attribute name="Project" value="${env.JOB_NAME}"/>
                  <attribute name="Build-Number" value="${env.BUILD_NUMBER}"/>
                  <attribute name="Build-Date" value="${build.date}"/>
              </section>
         </manifest>
         <zipfileset dir="${target.dir}"
              prefix="$META-INF/maven/${ivy.organisation}/${ivy.module}">
              <include name="pom.xml"/>
              <include name="pom.properties"/>
         </zipfileset>
     </jar>
</target>

这有助于使用Ivy与Maven非常兼容。