如何从命令行将参数传递给gradle
Posted
技术标签:
【中文标题】如何从命令行将参数传递给gradle【英文标题】:How to pass arguments to gradle from commandline 【发布时间】: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 实际上应该是什么?
【问题讨论】:
顺便说一句,我正在关注这个:***.com/questions/21358466/… 如果它在那里工作,为什么不适合我? 如果你的项目结构遵循 Gradle 标准,那么你不需要定义 sourceSet ...main .. test .. .. blahTest .. .. 部分.如果您的项目不遵循默认结构,那么您必须在 build.gradle 文件中定义 sourceSets 部分。您可以在以下链接中看到一个 build.gradle 文件来了解一下,您还必须应用插件:'java' 等:***.com/questions/18879250/… 对他有用的一个原因可能是,如果他的结构与 sourceSets 的默认 Gradle 项目结构相匹配(在这种情况下,您不需要为 main、test 等定义 sourceSets 部分)。其他可以是,如果 sourceSet 部分是在全局 Gradle 级别文件中定义的,即 $GRADLE_HOME/init.d/common.gradle 文件中的任何 .gradle 文件,那么您不需要在任何项目的 build.gradle 中指定 sourceSet 部分它使用那个 Gradle。 - 或者他只是没有在他的帖子中展示那篇文章(假设这对他在帖子中的问题范围并不重要)。 【参考方案1】:您的最小 build.gradle 文件应如下所示:
apply plugin: 'java'
task execute(type:JavaExec)
main = mainClass
classpath = sourceSets.main.output
您需要一个位于 src/main/java/Hello.java 中的 java 类,如下所示:
public class Hello
public static void main(String[] a)
【讨论】:
以上是关于如何从命令行将参数传递给gradle的主要内容,如果未能解决你的问题,请参考以下文章
如何在 build.gradle 中将参数传递给 Gradle 任务
有没有办法通过命令行将 JVM 参数传递给 Maven? [复制]