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

1、问题

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

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

2、解决

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

<?xml version="1.0" encoding="UTF-8"?>
<project name="lib" default="download-libs" xmlns:artifact="urn:maven-artifact-ant">

	<property name="maven.ant.tasks.jar" value="maven-ant-tasks-2.1.3.jar" />

	<property name="maven.settings.file" value="/Nautilus/java/maven/apache-maven-latest/conf/settings.xml" />

	<target name="download-libs" depends="-init-maven-task">

		<artifact:dependencies pathId="dependencies.classpath" settingsFile="${maven.settings.file}">

			<dependency groupId="org.slf4j" artifactId="slf4j-api" version="1.6.6">
				<exclusion groupId="org.springframework" artifactId="spring-core" /><!--屏蔽依赖示例-->
			</dependency>

		</artifact:dependencies>

		<move todir=".\lib">
			<path refid="dependencies.classpath" />
		</move>

	</target>

	<target name="-init-maven-task" depends="-obtain-maven-task-jar">
		<available property="maven.ant.tasks.jar.exists" file="${maven.ant.tasks.jar}" />
		<typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant" classpath="${maven.ant.tasks.jar}" />
	</target>

	<target name="-obtain-maven-task-jar">
		<available property="maven.ant.tasks.jar.exists" file="${maven.ant.tasks.jar}" />
		<antcall target="download-maven-jar" />
	</target>

	<target name="download-maven-jar" unless="maven.ant.tasks.jar.exists">
		<property name="maven.ant.tasks.url" value="http://www.apache.org/dist/maven/binaries/${maven.ant.tasks.jar}" />
		<get src="${maven.ant.tasks.url}" dest="${maven.ant.tasks.jar}" />
	</target>

</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/

转载于:https://my.oschina.net/noahxiao/blog/69250

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值