使用farmRun任务时未应用Gretty配置

时间:2019-07-08 15:48:52

标签: gradle gretty

我正在使用来自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。谢谢您的提示。

1 个答案:

答案 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
    }
}