Java 使用gradle中的参数运行jar

Java 使用gradle中的参数运行jar,java,jar,parameters,gradle,Java,Jar,Parameters,Gradle,我想在gradle脚本中运行一个jar文件,其参数位于C:/Users/nwuser/FitNesse/FitNesse-standalone.jar。我知道如何在没有参数的情况下进行: apply plugin: 'java' task runJar(dependsOn:jar) << { javaexec { main="-jar"; args "C:/Users/nwuser/FitNesse/fitnesse-standalone.jar" } } 如

我想在gradle脚本中运行一个jar文件,其参数位于C:/Users/nwuser/FitNesse/FitNesse-standalone.jar。我知道如何在没有参数的情况下进行:

apply plugin: 'java'

task runJar(dependsOn:jar) << {
  javaexec { 
    main="-jar"; args "C:/Users/nwuser/FitNesse/fitnesse-standalone.jar"
  } 
}
如何在gradle脚本中应用-c“FrontPage?suite&format=text”


亲切的问候

args是一个数组,因此只需提供如下参数:

task runJar(dependsOn:jar) << {
  javaexec { 
    main="-jar";
    args = [
            "C:/Users/nwuser/FitNesse/fitnesse-standalone.jar",
            "-c",
            "FrontPage?suite&format=text"
           ]
  } 
}
task-runJar(dependsOn:jar)如果您只是尝试使用Gradle运行FitNesse测试套件,您可以将FitNesse-jar添加到依赖项中:

repositories {
  mavenCentral()
}

dependencies {
  compile 'org.fitnesse:fitnesse:20161106'
}
并定义一个
JavaExec
任务,如下所示:

task fitnesse(type: JavaExec) {
  classpath = sourceSets.main.runtimeClasspath

  main = 'fitnesseMain.FitNesseMain'

  args '-c', 'FrontPage?suite&format=text'
}
然后运行:

$ gradle fitnesse
...
Executing command: FrontPage?suite&format=text
--------
0 Tests,        0 Failures      0.091 seconds.

根据Gradle 4.3,“Task.leftShift(Closure)方法已被弃用,并计划在Gradle 5.0中删除。请改用Task.doLast(Action)。”在我的例子中,它以完整的包名失败,但只使用类名:
main='main'
$ gradle fitnesse
...
Executing command: FrontPage?suite&format=text
--------
0 Tests,        0 Failures      0.091 seconds.