I'm using the Gretty sample from: https://github.com/gretty-gradle-plugin/gretty-sample In master build.gradle I modified only repositories URLs (to use mirror repo due proxy):
build.gradle:
apply plugin: 'java'
buildscript {
repositories {
maven {
//url 'http://oss.jfrog.org/artifactory/oss-snapshot-local/'
url 'http://10.0.0.1:7003/nexus/content/groups/public/'
}
//jcenter()
}
dependencies {
classpath 'org.gretty:gretty:+'
}
}
subprojects {
apply plugin: 'war'
apply plugin: 'org.gretty'
gretty {
scanInterval = 1 //Scan for changes every second
host = '0.0.0.0' //Enable network access from outside your local machine
httpPort = 8011
servletContainer = 'jetty7' //Use Jetty7 which is compatible with JDK6
managedClassReload = true //Activate spring-loaded class reloading
integrationTestTask = 'integrationTest'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
version = '1.0'
repositories {
maven {
//url 'http://oss.jfrog.org/artifactory/oss-snapshot-local/'
url 'http://10.0.0.1:7003/nexus/content/groups/public/'
}
//jcenter()
}
}
apply plugin: 'org.gretty'
farm {
webapp ':customer'
webapp ':car'
}
repositories {
maven {
//url 'http://oss.jfrog.org/artifactory/oss-snapshot-local/'
url 'http://10.0.0.1:7003/nexus/content/groups/public/'
}
jcenter()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
}
you can see the port is specified as:
httpPort = 8011
under subprojects section. When I run the gradle
gradlew :farmRun
it reports:
17:38:42 INFO Jetty 9.2.26.v20180806 started and listening on port 8080
17:38:42 INFO customer runs at:
17:38:42 INFO http://localhost:8080/customer
17:38:42 INFO car runs at:
17:38:42 INFO http://localhost:8080/car
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':farmRun'.
> java.lang.Exception: Address already in use: bind
so the jetty is still trying to use default port 8080. Thank you for any hints.
The method subprojects is NOT called by :farmRun. The gretty configuration method needs to be on root layer or directly part of farm method.
farm {
webapp ':customer'
webapp ':car'
gretty {
httpPort = 8012
servletContainer = 'jetty7' //Use Jetty7 which is compatible with JDK6
managedClassReload = true //Activate spring-loaded class reloading
}
}