【问题标题】:Building gradle project with dependecy ANT project that is not integrated into gradle使用未集成到 gradle 的依赖 ANT 项目构建 gradle 项目
【发布时间】:2015-10-06 18:29:25
【问题描述】:

我有一个正在处理的 gradle 项目。我的项目依赖于另一个没有集成到 gradle 中的项目。我没有这个依赖项目的所有权,因此我无法将该项目集成到 gradle 中。为了依赖这个其他项目,我已将一个 jar 上传到 maven 存储库。这一直运行良好,因为我没有对其他项目进行更改。

但是,现在我经常对这个依赖项目进行更改,每次我想构建我的 gradle 项目时,我都必须将一个新的 .jar 上传到我的 maven 存储库中。 (顺便说一句,依赖非gradle项目是使用ANT build.xml文件构建的。)这变得非常低效。

是否有一种简单的方法来更改我的 build.gradle 文件,该文件将为另一个项目运行 build.xml 并将输出的 .jar 作为依赖项添加到其中?或者有没有人有其他建议。

【问题讨论】:

  • 最简单(也是最正确)的解决方案就是自动化构建/发布基于 Ant 的项目。 en.wikipedia.org/wiki/Continuous_integration
  • 您可以访问该项目的源代码吗?您可以将 ant 构建作为 gradle 构建的一部分运行

标签: maven ant gradle


【解决方案1】:

我只是将 ant 构建作为 gradle 构建的一部分运行

apply plugin 'java'

def antproject = 'path/to/antproject';
ant.importBuild "${antproject}/build.xml"

compile.dependsOn someTargetInAntfile

那么就可以使用ant构建的jar作为依赖了

dependencies {
    compile fileTree(dir: "${antproject}/target", include: "*.jar")
}

【讨论】:

    【解决方案2】:

    我会稍微改变一下 Lance 的回答,修改 Ant 构建文件的导入并更改导入目标的名称,这样 Gradle 的任务和 Ant 目标之间就不会发生冲突:

    apply plugin: 'java'
    ant.importBuild('path/to/your/build.xml') { antTarget ->
      'ant-' + antTarget
    }
    
    compileJava.dependsOn "ant-jar"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-30
      • 2015-11-30
      • 2016-02-10
      • 1970-01-01
      • 2017-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多