【问题标题】:Gradle: how do I configure the jar location to be in the parent directory of the project?Gradle:如何将 jar 位置配置为项目的父目录中?
【发布时间】:2013-09-06 04:37:57
【问题描述】:

我正在尝试构建一个 Gradle JAR 项目,该项目是另一个项目的子项目,并且希望输出 JAR 文件位于父目录中(具体在父目录或同级的“lib”目录中)。我该如何为此配置 Gradle,这在哪里记录?

【问题讨论】:

  • 你为什么要这样做?每个项目都有自己的构建输出目录,我不建议偏离该目录。这令人困惑,意味着您将无法再独立清理项目。
  • 嗨 Peter - 我了解分离子项目构建的原则,但在这种情况下,我正在创建一个 Grails 插件,该插件依赖于子项目中的 jar(包含 groovy 源),它是构建的使用 Gradle。我希望将 jar 输出到插件的“lib”目录。插件本身没有构建(因为它是 Grails 插件),只有子项目。
  • 希望 Gradle 足够灵活,可以在不对项目结构施加严格规则(如 Maven)的情况下完成我想做的事情;)
  • 当然可以,但您的问题可能有更好的解决方案(我对此知之甚少)。

标签: build jar directory gradle


【解决方案1】:

build.gradle,添加:

libsDirName = '../../lib'

配置设置显示在 java plugin 的 Gradle 官方文档中。

顺便说一句,我完全同意 Peter 和 Hiery 给出的 cmets 和答案背后的意图,但有时最简单的解决方案是最好的解决方案。

【讨论】:

    【解决方案2】:

    同意彼得输入的评论。但是我认为您想表达父项目取决于子模块的输出。表达这一点并确保父级将子模块的输出复制到其“lib”目录更有意义。

    task assembleSubModules(type: Copy) {
      destinationDir = file("lib")
    
      into("lib") {
        project.subprojects.each { p ->
          from(p.tasks.withType(Jar)*.outputs)
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-27
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 2011-10-23
      • 2018-08-05
      • 2013-03-27
      • 1970-01-01
      相关资源
      最近更新 更多