2008-10-21

ant管理dependencies

有時候要把Maven調教成想要的樣子真的很麻煩,自己刻Ant build file比較快,但是這樣就要自己管理dependencies,引用很多library的時候會很痛苦,還好有Ant Tasks for Maven可以幫忙減輕痛苦。下載maven-ant-tasks-*.jar後扔進$APACHE_HOME/lib目錄就可以用了。

使用時可以像用Maven時一樣,把dependencies資訊存入pom.xml,再從build.xml引用。

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>net.zbwei</groupId>
  <artifactId>bento</artifactId>
  <packaging>war</packaging>
  <name>bento</name>
  <version>0.1</version>
  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring</artifactId>
      <version>2.5.5</version>
    </dependency>
    <dependency>
      <groupId>org.hibernate</groupId>
      <artifactId>hibernate</artifactId>
      <version>3.3.0.ga</version>
    </dependency>
  </dependencies>
</project>

build.xml:

<?xml version="1.0" encoding="utf-8" ?>
<project name="bento" default="all" basedir="." 
  xmlns:artifact="antlib:org.apache.maven.artifact.ant">
  <typedef uri="urn:maven-artifact-ant" 
    resource="org/apache/maven/artifact/ant/antlib.xml" />

  <artifact:dependencies filesetId="compile.jars"
    useScope="compile">
    <pom file="pom.xml" />
  </artifact:dependencies>

  <path id="classpath">
    <fileset refid="compile.jars" />
  <path>

  <target name="compile" depends="prepare">
    <javac source="1.5" target="1.5"
      srcdir="${src.dir}" destdir="${build.main.dir}"
      encoding="UTF-8" debug="true">
      <classpath refid="classpath" />
    </javac>
  </target>
</project>

0 comments: