【发布时间】:2014-09-10 08:58:57
【问题描述】:
我尝试将参数从命令行传递给 gradle。
我的 build.gradle 是:
task execute(type:JavaExec) {
main = mainClass
classpath = sourceSets.main.output
}
当我这样做时:
gradle -PmainClass=Hello execute
我明白了:
FAILURE: Build failed with an exception.
* Where:
Build file '/home/example2/build.gradle' line: 7
* What went wrong:
A problem occurred evaluating root project 'example2'.
> Could not find property 'sourceSets' on task ':execute'.
我的问题是我应该为 main 提供什么?任何java文件包的名称?有什么具体的路径吗? sourceSet 实际上应该是什么?
【问题讨论】:
-
顺便说一句,我正在关注这个:stackoverflow.com/questions/21358466/… 如果它在那里工作,为什么不适合我?
-
如果你的项目结构遵循 Gradle 标准,那么你不需要定义 sourceSet { ...main { .. } test { .. } .. blahTest { .. } .. } 部分.如果您的项目不遵循默认结构,那么您必须在 build.gradle 文件中定义 sourceSets 部分。您可以在以下链接中看到一个 build.gradle 文件来了解一下,您还必须应用插件:'java' 等:stackoverflow.com/questions/18879250/…
-
对他有用的一个原因可能是,如果他的结构与 sourceSets 的默认 Gradle 项目结构相匹配(在这种情况下,您不需要为 main、test 等定义 sourceSets 部分)。其他可以是,如果 sourceSet 部分是在全局 Gradle 级别文件中定义的,即 $GRADLE_HOME/init.d/common.gradle 文件中的任何 .gradle 文件,那么您不需要在任何项目的 build.gradle 中指定 sourceSet 部分它使用那个 Gradle。 - 或者他只是没有在他的帖子中展示那篇文章(假设这对他在帖子中的问题范围并不重要)。
标签: java