我正在使用来自https://github.com/gretty-gradle-plugin/gretty-sample的Gretty示例 在主build.gradle中,我仅修改了存储库URL(以使用镜像存储库到期代理):
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'
}
您可以看到端口被指定为:
httpPort = 8011
在子项目部分下。当我运行gradle
gradlew:farmRun
它报告:
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
所以码头仍然试图使用默认端口8080。谢谢您的提示。
答案 0 :(得分:0)
:farmRun不会调用方法 subprojects 。 gretty 配置方法必须位于根层或直接属于 farm 方法的一部分。
farm {
webapp ':customer'
webapp ':car'
gretty {
httpPort = 8012
servletContainer = 'jetty7' //Use Jetty7 which is compatible with JDK6
managedClassReload = true //Activate spring-loaded class reloading
}
}