当前位置: 首页 > 知识库问答 >
问题:

在命令行中传递gradle任务参数

赫连正初
2023-03-14

我试图找到从命令行传递gradle任务参数的最佳方法。我有这个任务。我想从学生练习中解包解决方案,并将它们复制到项目中的正确位置,以突出它们。我这样称呼这个任务:

> gradle swapSolution -Pstudent=MyStudent -Pexercise=ex05
A problem occurred evaluating root project 'kprog-2020-ws'.
> Could not get unknown property 'student' for root project 'kprog-2020-ws' of type org.gradle.api.Project.

这是gradle任务:

task swapSolution(type: Copy) {
    new File("${rootDir}/Abgaben").eachDir { file ->
        if (file.name.toString().matches("(.*)" + project.property("student") + "(.*)")) {
            def exDir = new File("/src/main/java/prog/" + project.property("exercise"))
            if (!exDir.exists()) {
                delete exDir
            }
            new File(file.path).eachFile { zipSolution ->
                //def zipFile = new File("./Abgaben/" + file.name.toString() + "/" + project.property("exercise") + "Solution.zip")
                from zipTree(zipSolution)
                into "/src/main/java/"
            }

        }
    }
}

你有什么建议来优化这个过程吗?

共有1个答案

崔宇
2023-03-14

-p表示Gradle项目属性。如果需要使用项目属性,可以在项目根目录中的gradle.properties文件中将其指定为系统属性。

如果您的任务类型为javaexec,则可以使用--args开关,并将其传递到Gradle任务运行配置的Arguments文本字段中,任务名称为swapsolution-args=“-student=mystudent-exersione=ex05”。另见https://stackoverflow.com/a/48370451/2000323

 类似资料:
  • 我有一个java和groovy类,由gradle Task运行。我已经设法使它工作,但我不喜欢在命令行中传递参数的方式。下面是我当前通过命令行执行的方法: my build。gradle代码采用这些参数如下所示: 我想知道有没有一种方法可以更好地传递参数,比如: 以及如何在我的java类中使用它们。

  • 要启动Java程序,我可以传递如下参数: 在gradle命令行中有哪些好的方法可以做到这一点: 这是正在建造的。格雷德尔:

  • 我尝试将参数从命令行传递到gradle。 我的身材是: 当我这样做时: 我得到这个: 我的问题是我应该为main提供什么?任何java文件包的名称?有具体的路径吗?什么应该是真正的源集?

  • 1.)在预定义数据库2中运行liquibase变更集。)对数据库3运行多个测试。)回滚使用前一个变更集所做的所有更改 每次测试时,我都希望数据库处于“干净”状态。它应该只有我期望的变化,没有其他。liquibase使用Gradle插件进行设置,并应用/更新变更集。但是,我不想手动调用该命令。这将是需要在持续集成中运行的东西,所以我需要编写脚本,让配置项调用一个任务,然后按顺序运行每个任务,直到结束

  • 我试图将一个参数从命令行传递到java类。我关注了这篇文章:http://gradle.1045684.n5.nabble.com/gradle-application-plugin-question-td5539555.html,但是代码对我来说不起作用(也许它不适合JavaExec?)。以下是我所尝试的: 上面硬编码的args值的输出是: 任何关于如何将命令行参数传递给gradle的指针都很感

  • 我有一个Gradle构建脚本,我试图将Eric Wendelin的CSS插件包含其中。 它很容易实现,因为我只想缩小(而不是合并和gzip),所以我得到了构建脚本的相关部分,如下所示: 这是完美的-当我运行gradle war任务时,它会调用mini fyCss任务,获取源css文件,并在buildDir中创建一个缩小版本 但是,我有一些需要缩小的css文件,但没有组合成一个文件(因此我没有使用组