【问题标题】:Gradle How to Set Output Root PathGradle 如何设置输出根路径
【发布时间】:2016-05-12 01:08:48
【问题描述】:

我的资源位于一个文件夹结构中,例如:

mygitroot/myproj/module1/src/main/groovy/com/mypak/module1 mygitroot/myproj/module2/src/main/groovy/com/mypak/module2 mygitroot/myproj/module3/src/main/groovy/com/mypak/module3

Gradle 在文件夹结构中构建 jar,例如:

mygitroot/myproj/build/libs/module1.jar mygitroot/myproj/build/libs/module2.jar mygitroot/myproj/build/libs/module3.jar

我希望它输出到默认的动态文件夹结构,只是植根到不同的“nongitroot”文件夹:

mybuildroot/myproj/build/libs/module1.jar mybuildroot/myproj/build/libs/module2.jar mybuildroot/myproj/build/libs/module3.jar

我的任务是这样说的:

task sourcesJar(type: Jar) {
    group 'Build'
    description 'An archive of the source code'
    classifier 'sources'
    from sourceSets.main.allSource
}

有没有一种优雅的方式来改变根?

【问题讨论】:

  • 设置buildDir属性
  • 不能按要求工作:
  • 不能按要求工作,我猜是因为“modules1-3”是父项目的子项目。我在 allprojects{ 下添加了 buildDir="../my-build",它确实创建了文件夹并创建了“my-build/libs/parent.jar”和“my-build/temp”。但它还在我的项目的根目录中创建了“my-build”,其中包含“/classes”、“/libs”和“/tmp”子目录。 "/libs" 里面都是 3 个 jars.... "module1.jar", "module2.jar", "module3.jar" 。非常令人惊讶。因此,似乎我需要在每个模块的 build.gradle 中静态指定每个子项目 buildDir(例如: "myproj/src/module1" )。对吗?
  • 你为什么不照常建造它们,然后有一个移动它们的任务。这难道不比尝试破解 jar 文件的构建路径更容易吗?

标签: groovy gradle root


【解决方案1】:

使用 tim_yates 的答案 - 事实证明,这不是 Gradle 中的可配置选项,因此在本机中是不可能的。而是要创建一个移动任务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多