ant构建项目迁移到gradle_从 Ant 常 Spring 藤迁移到gradle

如果你没有很多自定义ant任务,只需要转换你的ivy依赖项,这将从你的ivy.xml创建gradle依赖项 . 粘贴到ivy.xml旁边的空build.gradle中并运行 gradle ivyToGradle . 然后将输出复制到build.gradle文件中 . 由于使用了compileOnly配置,因此需要gradle 2.12 .

这不会处理所有可能的ivy.xml设置,您可能需要调整您对ivy.xml的特定用法 . 它处理基础知识,如运行时配置,测试配置,仅编译配置,全局排除,传递真/假和版本强制 .

task ivyToGradle {

description "Converts dependencies in ivy.xml to gradle dependencies."

doLast {

def ivyModule = new XmlParser().parse(new File("$projectDir/ivy.xml"))

if (!ivyModule.dependencies.exclude.isEmpty() || !ivyModule.dependencies.override.isEmpty()) {

println "configurations.runtime {"

ivyModule.dependencies.exclude.each {

def excludeStrs = []

if (it.@org != null) {

excludeStrs.add("group: '${it.@org}'")

}

if (it.@module != null) {

excludeStrs.add("module: '${it.@module}'")

}

if (!excludeStrs.isEmpty()) {

def excl = excludeStrs.join(", ")

println " exclude ${excl}"

}

}

def overrides = ivyModule.dependencies.override.findResults {

if ("exact" != it.@matcher) {

return null

}

if (!it.@org || !it.@module || !it.@rev) {

return null

}

return " '${it.@org}:${it.@module}:${it.@rev}'"

}

if (overrides) {

println " resolutionStrategy.force("

println overrides.join(",\n")

println " )"

}

println "}"

println ""

}

println("dependencies {")

ivyModule.dependencies.dependency.each {

def transitive = ("false" != it.@transitive)

def force = ("true" == it.@force)

def scope = "compileOnly" // Requires gradle 2.12 or later

if (it.@conf?.contains("test")) {

scope = "testCompile"

} else if (it.@conf?.contains("runtime")) {

scope = "compile"

}

def hasBlock = !it.exclude.isEmpty() || !transitive || force

if (hasBlock) {

println " $scope('${it.@org}:${it.@name}:${it.@rev}') {"

it.exclude.each {

def excludeStrs = []

if (it.@org != null) {

excludeStrs.add("group: '${it.@org}'")

}

if (it.@module != null) {

excludeStrs.add("module: '${it.@module}'")

}

if (!excludeStrs.isEmpty()) {

def excl = excludeStrs.join(", ")

println " exclude ${excl}"

}

}

if (!transitive) {

println " transitive = false"

}

if (force) {

println " force = true"

}

println " }"

} else {

println " $scope '${it.@org}:${it.@name}:${it.@rev}'"

}

}

println("}")

println ""

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值