内容简介:所讨论的这个问题是有问题的,因为它假设项目:Libraries / MovedLibrary在当前项目之前被评估(不执行),可能不是这样.如果没有,另一个项目的源代码集将不会被配置. (甚至没有sourceSets属性,因为java-base插件还没有被应用)一般来说,最好不要涉及其他项目的项目模式,特别是如果他们不是当前项目的孩子.在项目A使用项目B的测试代码的情况下,推荐的解决方案是使项目B公开测试Jar(通过工件{}块),然后由项目A消耗.如果你想保持现状,你可以使用gradle.projectsE
我有一个很好的毕业生配置,建立一切都很好.但是,我的多项目构建项目之一源自于其他项目,所以我很乐意将其转移到另一个git repo并配置子模块来处理它.
首先,我将Project及其资源移至子文件夹/ MovedProject.改变了一些线程在gradle配置后,工作正常.但是后来我决定为这个项目编写一个新的build.gradle,并将其中的所有配置从主文件中移出.
这就是一切都停止工作的地方.当我尝试调用任何任务时,它总是结束
在项目’:库/ MovedProject’上找不到属性’sourceSets’.负责的是:
dependencies { ... if (noEclipseTask) { testCompile project(':Libraries/MovedLibrary').sourceSets.test.output } }
我用于运行测试,其中我使用其他项目的类.如果我删除该行,则只有在到达使用MovedProject的项目的compileTestJava任务时,构建才会失败.如果我删除该行并调用gradle:库/ MovedLibrary:属性我可以看到:
... sourceCompatibility: 1.7 sourceSets: [source set main, source set test] standardOutputCapture: org.gradle.logging.internal.DefaultLoggingManager@1e263938 ...
而gradle:图书馆/ MovedLibrary:构建正确.
目前我已经做了如下所有设置:
>目录:
> / SomeMainProject1
> / SomeMainProject2
> / SomeMainProject3
> /库
> / MovedProject
> build.gradle
>依赖
> project.gradle
> tasks.gradle
> / Builder
>依赖
> project.gradle
> tasks.gradle
> build.gradle
> settings.gradle
> settings.gradle
include Libraries/MovedProject, SomeMainProject1, SomeMainProject2, SomeMainProject3
> MovedProject的sourceSets在Libraries / MovedProject / project.gradle中定义:
sourceSets { main { java { srcDir 'src' srcDir 'resources' } resources { srcDir 'resources' } } test { java { srcDir 'test/unit' } } }
使用sourceSets.test.output的依赖关系存储在Builder / dependancies.gradle中,并为需要MovedProject的每个项目设置运行测试:
project(':SomeMainProject1') { dependencies { ... if (noEclipseTask) { testCompile project(':Libraries/net.jsdpu').sourceSets.test.output } } }
什么是最简单的方法来摆脱这个错误,并使当前目录结构的gradle构建项目?我想了解为什么毕业生看不到这个财产.
所讨论的这个问题是有问题的,因为它假设项目:Libraries / MovedLibrary在当前项目之前被评估(不执行),可能不是这样.如果没有,另一个项目的源代码集将不会被配置. (甚至没有sourceSets属性,因为java-base插件还没有被应用)
一般来说,最好不要涉及其他项目的项目模式,特别是如果他们不是当前项目的孩子.在项目A使用项目B的测试代码的情况下,推荐的解决方案是使项目B公开测试Jar(通过工件{}块),然后由项目A消耗.
如果你想保持现状,你可以使用gradle.projectsEvaluated {}或project.evaluationDependsOn()来解决问题.有关更多信息,请参阅 Gradle Build Language Reference .
代码日志版权声明:
翻译自:http://stackoverflow.com/questions/15347364/gradle-multiproject-gives-could-not-find-property-sourcesets-on-project-erro
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 写不写注释? Elixir 给出另外一个答案
- php – 为什么$variable = 0759给出61?
- Tor被曝多个0 day漏洞,官方给出回应!
- 算法 – 给出一个单词,打印其索引,可以相应地增加单词
- 有人说Julia比Python好,还给出了5个理由
- 强化学习如何提升ICU抢救效率?普林斯顿大学给出答案
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Ruby Programming Language
David Flanagan、Yukihiro Matsumoto / O'Reilly Media, Inc. / 2008 / USD 39.99
Ruby has gained some attention through the popular Ruby on Rails web development framework, but the language alone is worthy of more consideration -- a lot more. This book offers a definition explanat......一起来看看 《The Ruby Programming Language》 这本书的介绍吧!