用Ant-Ivy来做类似Maven的包管理

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值