ant中使用maven-ant-tasks下载maven的依赖

ant中使用maven-ant-tasks下载maven的依赖
1人收藏此文章,我要收藏发表于5个月前(2012-07-26 21:12) ,     已有 235次阅读 ,共 0个评论       

1、问题

一个项目原来由于全部采用ant构建,非常庞大。想换为maven来管理依赖与构建。但初期不可能一步到位,所以需要主体还是用ant,只是局部先采用maven。这时问题就来了,ant打包时需要私有maven仓库中一些jar。所以需要自动把maven中的jar资源下载下来,参与ant打包。

maven在没有pom.xml文件存在时并没有直接下载依赖的指令。

2、解决

查看资料后发现maven-ant-tasks可以做到,下面是ant的脚本。

01<?xml version="1.0" encoding="UTF-8"?>
02<project name="lib" default="download-libs" xmlns:artifact="urn:maven-artifact-ant">
03 
04    <property name="maven.ant.tasks.jar" value="maven-ant-tasks-2.1.3.jar" />
05 
06    <property name="maven.settings.file" value="/Nautilus/java/maven/apache-maven-latest/conf/settings.xml" />
07 
08    <target name="download-libs" depends="-init-maven-task">
09 
10        <artifact:dependencies pathId="dependencies.classpath" settingsFile="${maven.settings.file}">
11 
12            <dependency groupId="org.slf4j" artifactId="slf4j-api" version="1.6.6">
13                <exclusion groupId="org.springframework" artifactId="spring-core" /><!--屏蔽依赖示例-->
14            </dependency>
15 
16        </artifact:dependencies>
17 
18        <move todir=".\lib">
19            <path refid="dependencies.classpath" />
20        </move>
21 
22    </target>
23 
24    <target name="-init-maven-task" depends="-obtain-maven-task-jar">
25        <available property="maven.ant.tasks.jar.exists" file="${maven.ant.tasks.jar}" />
26        <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant" classpath="${maven.ant.tasks.jar}" />
27    </target>
28 
29    <target name="-obtain-maven-task-jar">
30        <available property="maven.ant.tasks.jar.exists" file="${maven.ant.tasks.jar}" />
31        <antcall target="download-maven-jar" />
32    </target>
33 
34    <target name="download-maven-jar" unless="maven.ant.tasks.jar.exists">
35        <property name="maven.ant.tasks.url" value="http://www.apache.org/dist/maven/binaries/${maven.ant.tasks.jar}" />
36        <get src="${maven.ant.tasks.url}" dest="${maven.ant.tasks.jar}" />
37    </target>
38 
39</project>

这个脚本第一次会自动下载maven-ant-tasks-2.1.3.jar,如果没有找到请登录http://www.apache.org/dist/maven/binaries/参考一下现在的版本来修改脚本。

maven.settings.file为你的maven settings.xml的位置。这样就会自动使用你配置的profile。

从仓库下载下来的jar会放到当前的lib目录中。(move todir=".\lib")

如果有多个lib目录需要copy。重复target中的artifact:dependencies与move代码块就可以了。

参考:http://maven.apache.org/ant-tasks/

[CLASS] org.apache.tools.ant.Main org.apache.tools.ant.Task org.apache.tools.bzip2.CRC org.apache.tools.ant.Target org.apache.tools.ant.Project org.apache.tools.zip.ZipFile org.apache.tools.zip.ZipLong org.apache.tools.ant.Executor org.apache.tools.ant.Location org.apache.tools.tar.TarEntry org.apache.tools.tar.TarUtils org.apache.tools.zip.UnixStat org.apache.tools.zip.ZipEntry org.apache.tools.zip.ZipShort org.apache.tools.ant.XmlLogger org.apache.tools.tar.TarBuffer org.apache.tools.zip.JarMarker org.apache.tools.zip.ZipFile$1 org.apache.tools.ant.BuildEvent org.apache.tools.ant.MagicNames org.apache.tools.ant.types.Path org.apache.tools.ant.BuildLogger org.apache.tools.ant.Diagnostics org.apache.tools.ant.FileScanner org.apache.tools.ant.TaskAdapter org.apache.tools.ant.TypeAdapter org.apache.tools.ant.XmlLogger$1 org.apache.tools.mail.MailMessage org.apache.tools.tar.TarConstants org.apache.tools.ant.taskdefs.Ant org.apache.tools.ant.taskdefs.Apt org.apache.tools.ant.taskdefs.Cvs org.apache.tools.ant.taskdefs.Ear org.apache.tools.ant.taskdefs.Get org.apache.tools.ant.taskdefs.Jar org.apache.tools.ant.taskdefs.Tar org.apache.tools.ant.taskdefs.War org.apache.tools.ant.taskdefs.Zip org.apache.tools.ant.types.DirSet org.apache.tools.ant.types.Mapper org.apache.tools.ant.BuildListener org.apache.tools.ant.DefaultLogger org.apache.tools.ant.Diagnostics$1 org.apache.tools.ant.ExitException org.apache.tools.ant.PathTokenizer org.apache.tools.ant.ProjectHelper org.apache.tools.ant.TaskContainer org.apache.tools.zip.AsiExtraField org.apache.tools.zip.ZipExtraField org.apache.tools.ant.taskdefs.Copy org.apache.tools.ant.taskdefs.Echo org.apache.tools.ant.taskdefs.Exec org.apache.tools.ant.taskdefs.Exit org.apache.tools.ant.taskdefs.GZip org.apache.tools.ant.taskdefs.Java org.apache.tools.ant.taskdefs.Move org.apache.tools.ant.taskdefs.Nice org.apache.tools.ant.taskdefs.Pack org.apache.tools.ant.taskdefs.Rmic org
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值