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

如何运行新的gradle任务?

濮阳振
2023-03-14

我在build.gradle中创建了一个新的gradle任务:

task callCL(type: Exec) {
   println "hello"
   commandLine './rerun.sh'
}

哪个应该运行rerun.sh:

#!/bin/bash

cucumber -f rerun --out rerun.txt

file="rerun.txt"
if [ -f "$file" ] then
    cucumber @rerun.txt
    rm $file
fi

我使用IntelliJ作为IDE。如何运行此任务?

我尝试在zshell控制台中运行并收到此错误:

gradle调用CL zsh:找不到命令:gradle

但是在 IDE 中,我一直使用 gradle,因此必须安装它。

我怎么才能解决这个问题?我的写作还好吗?

共有2个答案

慕容恩
2023-03-14

这看起来像是在路径(在外壳中)上找不到gradle的问题。

您可以使用GVM轻松安装gradle,以便它在您的PATH上可用。

帅颖逸
2023-03-14

试试这个:
1. 确保设置GRADLE_HOME、GRADLE_OPTS。
2.确保$PATH里面有GRADLE_HOME/垃圾箱。
3. 哪个 gradle 应该返回有效的输出。
4.然后,请参阅下文,
如果这适用于命令提示符,那么您的IDE设置只需要知道GRADLE_HOME在哪里,也就是它的安装/可执行文件(gradle或gradle.bat)

注意:我用了自己的dummy rerun.sh文件,你可以用build.gradle(如下图)。

$cat重新运行.sh

#!/bin/bash

echo Im re-running a command echo
echo something
echo ...
echo

$cat build.gradle

task callCL(type: Exec) {
        println "-----"
        println "hello"
        println "-----"
        executable "bash"
        args "-c", "bash ./rerun.sh"

        //The following will do as well as magic number in bash is already set to #!/bin/bash
        //args "-c", "./rerun.sh"
}

$/cyg drive/c/gradle-2.0/bin/gradle callCL

-----
hello
-----
:callCL
Im re-running a command echo
something
...

BUILD SUCCESSFUL

Total time: 2.006 secs
 类似资料:
  • 我想从我的Gradle脚本运行JMeter GUI,这样我就可以仔细控制版本和环境因素,这样我的本地开发人员机器构建1就没有必要的设置了。 我的JMeter的构建。gradle(多项目构建的一部分): 1目前,在我的构建中,所有内容都受到严格的版本控制,是Gradle构建的一部分。这包括NodeJS、NPM和Terraform。从字面上看,唯一的设置先决条件是Java8 JDK。我想用JMeter

  • 我有一个结构如下的项目: Maven-as-submodule-只是一个分级项目;graph-gen是gradle项目中的Maven模块(不是子模块) 我的目标是从gradle任务运行command:。所以我写了一些: null 任务runMvnInterfaceGenerator(类型:Exec){dependsOn“copy graphstoGenerator”workingDir“./gra

  • 问题内容: 我想在gradle中定义一个任务(称为),该任务运行gradle任务,但具有的固定值。我也希望以后可以使用原始任务。 我的问题是,我无法转移清单的设置。 我累了 我以为我要通过对archiveName和manifest使用其他值来重新定义任务。 运行时会生成一个可执行的JAR文件。 运行时会生成一个jar文件。不幸的是,当尝试使用我运行程序时,出现错误消息: java -jar bui

  • 我有一个gradle项目,其中“单元测试”和“集成测试”任务定义如下: 我在IntelliJ中创建了一个运行配置来运行所有单元测试,如图像显示: 并对任务“integrationTest”执行了相同的操作: IntelliJ“理解”测试任务并运行它,显示图形结果,如下图所示: 当它运行“集成测试”任务时不会发生同样的情况。结果以文本形式显示,就像我通过命令行运行任务时一样。

  • 我尝试用JavaExec类型创建gradle任务。在gradle文档中,我发现我不需要使用java插件。但是这个插件与android插件不兼容。如果我没有应用java插件,我会收到以下错误: 错误:无法找到或加载主类包。TestM 我的任务示例: 如果使用相同的任务创建java库模块,则会收到相同的错误: 错误:无法找到或加载主类 也许我需要设置类路径变量?如何在Android Studio中获取

  • 我正在使用带有sonarqube插件的Gradle并使用 然而,它调用了内置的“测试”任务,该任务运行所有类型的测试,包括目前尚未全部通过的集成测试。我希望能够指定sonarqube任务使用类似“unitTest”的任务,而不是运行所有内容的“test”任务。 团队中的其他人在IDE中运行cucumber测试,IDE也使用测试任务,因此当前当我在主“测试”任务中排除cucumber测试时,他们必须