使用 Gradle 运行时设置 Grails 端口

Posted

技术标签:

【中文标题】使用 Gradle 运行时设置 Grails 端口【英文标题】:Set Grails Port when Running with Gradle 【发布时间】:2016-04-19 15:38:57 【问题描述】:

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

./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"

以及build.propertiesConfig.groovybuild.grade 中的grails.server.port.http 属性。没有工作。很难。

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

任何帮助将不胜感激。

【问题讨论】:

我假设它是 grails 3.x 构建。 【参考方案1】:

你也可以这样设置端口

-Dgrails.server.port=9090

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

【讨论】:

【参考方案2】:

我猜您使用的属性名称不正确,即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 应该会有所帮助! 希望对您有所帮助!

【讨论】:

嘿!找到了一个很好的链接,绝对可以帮助您nixmash.com/java/setting-the-tomcat-http-port-in-gradle Vinay,非常感谢您的帮助。两种方法似乎都行不通。 Dserver.port=8086 没有被拾取,并且服务器仍在端口 8080 上运行。我尝试将 bootRunrun 任务添加到 build.gradle 中,最终出现类似 Could not find method run()... 的错误消息 在 build.gradle 在运行任务中你是否尝试设置环境属性,如 runaddResources = false systemProperty 'server.port', '8086' 事实证明,在grails-app/conf/BuildConfig.groovy 中添加grails.server.port.http = 9090 可以解决问题。 grails docs 的 gradle 插件声明不再参考 BuildConfig.groovy 获取存储库或依赖项信息,但显然仍会参考该文件以获取运行时配置。

以上是关于使用 Gradle 运行时设置 Grails 端口的主要内容,如果未能解决你的问题,请参考以下文章

如何告诉 Grails 使用 Gradle 解决依赖关系

初始化类路径时出错:找不到与 services.gradle.org 匹配的主题备用 DNS 名称。 -> 运行 grails 3.0.1 应用程序时

使用gradle bootRun启动时,redirect()无法在Grails中解析@info.app.name @

如何在 Grails 3 Gradle 项目中控制 H2 驱动程序版本?

Gradle 在构建 Grails 项目时给出 ClassNotFoundException

使用“gradle test”测试 Grails 3 应用程序使用错误的环境配置