Run jar with parameters in gradle

23,107

Solution 1

args is an array, so simply supply your arguments as such:

task runJar(dependsOn:jar) << {
  javaexec { 
    main="-jar";
    args = [
            "C:/Users/nwuser/FitNesse/fitnesse-standalone.jar",
            "-c",
            "FrontPage?suite&format=text"
           ]
  } 
}

Solution 2

If you're just trying to run a FitNesse test suite with Gradle, you can add the FitNesse jar to your dependencies:

repositories {
  mavenCentral()
}

dependencies {
  compile 'org.fitnesse:fitnesse:20161106'
}

and define a JavaExec task like so:

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

  main = 'fitnesseMain.FitNesseMain'

  args '-c', 'FrontPage?suite&format=text'
}

And then run:

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

Related videos on Youtube

Jason Saruulo
Author by

Jason Saruulo

Updated on July 09, 2022

Comments

  • Jason Saruulo
    Jason Saruulo almost 2 years

    I want to run a jar file with parameters located at C:/Users/nwuser/FitNesse/fitnesse-standalone.jar in my gradle script. I know how to do it without parameters:

    apply plugin: 'java'
    
    task runJar(dependsOn:jar) << {
      javaexec { 
        main="-jar"; args "C:/Users/nwuser/FitNesse/fitnesse-standalone.jar"
      } 
    }
    

    But now I want to do something similiar like (if using the console):

    java -jar fitnesse-standalone.jar -c "FrontPage?suite&format=text"
    

    How can I apply -c "FrontPage?suite&format=text" inside my gradle script?

    Kind regards !

    • bonh
      bonh over 6 years
      According to Gradle 4.3, "The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead."
  • julianm
    julianm over 4 years
    In my case it failed with full package name, but it worked using just the class name: main = 'Main'