Dependencies
Understanding dependencies ...
./gradlew -q acmeair-webapp:dependencyInsight --dependency javax.servlet
I looked at the output and then saw the exact package it was bringing in:
org.eclipse.jetty.orbit:javax.servlet:2.5.0.v201103041518
And added this to providedRuntimes in my packaging:
providedRuntime 'org.eclipse.jetty.orbit:javax.servlet:2.5.0.v201103041518'
And finally, the specific jar was gone from my war
By adding something to the providedRuntime, you can break things as this instructs the packager to treat the runtime and its dependencies as not required. I ran into the issue when I told it not to include aws-java-sdk which depends on commons-logging-1.1.1. Without being more specific, I ran into Spring not starting with the infamous error which was actually this.
You can be more specific in exclusion by adding .jar like:
providedRuntime 'com.amazonaws:aws-java-sdk:1.3.27@jar'
Using the application plugin
To use the application plugin here are all four steps for getting it to work with arguments in a multi-project build:
project(':somesubproject') {
apply plugin: 'application'
mainClassName = 'org.spyker.MainClass'
run {
args = ['someargument', 'asecondargument]
}
}
./gradlew :somesubproject:run
Notes: If you only have a single argument remember to put it in an array args = ['singlearg']. I eventually need to find out how to pass in args via a -P parameter.
Plugins
Using the application plugin
To use the application plugin here are all four steps for getting it to work with arguments in a multi-project build:
project(':somesubproject') {
apply plugin: 'application'
mainClassName = 'org.spyker.MainClass'
run {
args = ['someargument', 'asecondargument]
}
}
./gradlew :somesubproject:run
Notes: If you only have a single argument remember to put it in an array args = ['singlearg']. I eventually need to find out how to pass in args via a -P parameter.