使用Gradle运行时设置Grails端口

han*_*naZ 3 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"
Run Code Online (Sandbox Code Playgroud)

以及grails.server.port.httpbuild.properties,Config.groovybuild.grade.没有用.很难.

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

任何帮助将不胜感激.

Ser*_*nik 6

您也可以像这样设置端口

-Dgrails.server.port=9090
Run Code Online (Sandbox Code Playgroud)

使用Gradle启动服务器时.这个对我有用


Vin*_*ati 4

我猜您使用的属性名称不正确 ie grails.server.port.http。应该是server.port。因此尝试... -Dserver.port=8256等等。

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

bootRun {
   systemProperty 'server.port', '8086'
}
Run Code Online (Sandbox Code Playgroud)

这将在 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'
Run Code Online (Sandbox Code Playgroud)

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

编辑:更多应该有帮助!希望能帮助到你!