使用Gradle运行时设置Grails端口

时间:2016-01-14 10:39:43

标签: grails gradle

我很难将Grails项目的端口设置为8080以外的其他项目。该项目是使用Gradle设置的。我尝试了所有我能想到并在Google上找到的方法,但它不起作用。我试过的方法包括

./gradlew run -PgrailsArgs="-Dgrails.server.port.http=9090"
./gradlew run-app -PgrailsArgs="-Dgrails.server.port.http=9090"
./gradlew grails-run-app -PgrailsArgs="-Dgrails.server.port.http=9090"
./gradlew run -Dgrails.server.port.http=9090
./gradlew -Dgrails.server.port.http=9090 run
./gradlew grails-run-app -PgrailsArgs="--port=9090"

以及grails.server.port.httpbuild.propertiesConfig.groovy中的build.grade属性。没有用。这很难。

可能grail run-app可以使用上述选项之一(也使用BuildConfig.groovy)。但是“grails run-app”总是导致org.aspectj:aspectjweaver:1.8.5的解析错误。我也不知道如何绕过这条路。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:6)

您也可以像这样设置端口

-Dgrails.server.port=9090

使用Gradle启动服务器时。它对我有用

答案 1 :(得分:3)

您使用的是错误的属性名称,即grails.server.port.http。它应该是server.port。因此请尝试... -Dserver.port=8256等。

此外,您可以在build.gradle任务中指定它,用于运行应用程序,如下所示。例如,您正在使用gradle bootRun为springboot应用程序执行此操作。(实际上我在grails 3.0中没有太多的工作经验但是在springboot中有工作经验)

bootRun {
   systemProperty 'server.port', '8086'
}

这将在8086端口上运行您的应用程序。

一般情况下,您可以尝试

  

gradle your_task_to_run_app -Dserver.port = your_port

此外,如果你在grails 3应用程序中有application.yml(因为grails 3使用gradle和springboot。如果不存在你应该能够创建一个),那么就像下面这样做:

app:
 name:Springboot+Config+Yml+Demo
 version:1.0.0
settings:
 counter:1
---
spring:
 profiles:development
server:
 port: 9001
security:
 user.name: 'default'
 user.password: 'default'

让我知道它是否有效,因为它没有尝试,但很确定它会起作用。

修改:更多this应该有所帮助! 希望它有所帮助!