gradle-execfork-plugin
gradle-execfork-plugin copied to clipboard
Declarative support for java -jar processes
Currently workaround for this is to use ExecFork task and use it as follows:
executable = Jvm.current().javaExecutable.absolutePath
args = ["-DsomeJvmArg=something", "-jar", "$buildDir/libs/some-fat-jar.jar"]
waitForPort = 30000
stopAfter = xyz
...
Problem with this approach is that you need to keep in mind the proper ordering of args (e.g. -D args before -jar arg. or -javaagent arg order etc.)
Proposal is to enhance JavaExecFork to support running java application declaratively e.g.
jarFile = "$buildDir/libs/some-fat-jar.jar"
javaagent = "$buildDir/agent/some-agent.jar" //optional or can be moved to jvmArgs
jvmArgs = [ '-Dconfig.file=src/main/resources/some.conf' ]
waitForPort = 30000
stopAfter = xyz
...
My build.gradle script couldn't resolve executable = Jvm.current().getJavaExecutable().getAbsolutePath(), so I added a full path like executable = org.gradle.internal.jvm.Jvm.current().getJavaExecutable().getAbsolutePath() and it works!
Thank you @lukasito for the workaround!