English Version: Ant-Ivy to Manage Dependencies Like in Maven
If: 你要准备创建新项目,那就直接上Maven吧!
Else: 如果你手头上的项目正在用Ant工具,你可以考虑用Ant-Ivy来做类似Maven的依赖(包)管理。这个工具还有衍生的IvyDE插件来方便你使用Eclipse开发环境。下面例子将演示设置基本的Ant-Ivy环境。
创建用Ant管理的项目
创建的工程结构如下
<pre name="code" class="plain">.
├── build.xml
├── ivy.xml
├── lib
│ └── ivy-2.4.0.jar
└── src
├── main
│ └── java
│ └── com
│ └── yiyeguhu
│ └── example
│ └── antivy
│ └── DateUtils.java
└── test
└── java
└── com
└── yiyeguhu
└── example
└── antivy
定义Ivy任务
首先,你需要从Apache Ivy下载ivy*.jar包,将它放在如本例所示的“./lib”路径下。
在build.xml中定义Ivy任务,而之后将用到:
<pre name="code" class="html"><path id="ivy.jar.file">
<fileset dir="./lib">
<include name="ivy*.jar" />
</fileset>
</path>
<taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpathref="ivy.jar.file"/>
解析项目依赖
在ivy.xml中以类似Maven包管理的方式定义你的项目依赖项。比如,你想要在你的工程中包含commons-lang3包。相关信息网页显示如下Maven依赖项属性:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.0</version>
</dependency>
你只需要将“groupId”、“artifactId”、“version”分别转译成“org”、“module”、“rev”。其实, commons-lang3信息网页也显示了Ivy的依赖项表达。在本例中,我们将在ivy.xml中这样表达依赖:
<ivy-module version="2.0">
<info organisation="org.apache" module="dateUtilsProject" />
<dependencies>
<dependency org="org.apache.commons" name="commons-lang3" rev="3.4" />
</dependencies>
</ivy-module>
我们再在build.xml定义一个Ant目标来做最后的解析工作。
<target name="resolve" description="--> retrieve dependencies with ivy">
<ivy:retrieve pattern="${lib.dir}/[organisation]/[type]/[artifact]-[type]-[revision].[ext]" />
</target>
其他
依赖解析完成之后,我们的Java代码就可以import “org.apache.commons.lang3“中的方法了。
package main.java.com.yiyeguhu.example.antivy;
import java.util.Date;
import org.apache.commons.lang3.StringUtils;
public class DateUtils {
public static void main(String[] args) {
System.out.println(getLocalCurrentDate());
String someWhiteSpace = " \t \n";
boolean result = StringUtils.isBlank(someWhiteSpace);
System.out.println(result);
}
private static Date getLocalCurrentDate() {
return new Date();
}
}
工程的其他部分包括一些常规的Ant目标来编译和打jar包。
最后,我们只需执行“ant”命令来建jar包!
Github示例链接
https://github.com/yiyeguhu/ant-ivy-example
参考资料
Ant-Ivy官方指南:http://ant.apache.org/ivy/history/latest-milestone/tutorial.html