【问题标题】:How to set http port for forked grails running under maven?如何为在 maven 下运行的分叉 grails 设置 http 端口?
【发布时间】:2026-01-26 07:15:01
【问题描述】:

如何从命令行为在 maven 下运行的 grails (2.1.0) 项目设置 http 端口? Grails 正在被分叉。

我试过了:

mvn grails:run-app -Dserver.port=8081 -Dgrails.server.port.http=8081

但没有运气。它仍然在端口 8080 上运行。

我没有在其他任何地方指定端口属性。

pom sn-p:

<plugin>
    <groupId>org.grails</groupId>
    <artifactId>grails-maven-plugin</artifactId>
    <version>2.1.0</version>
    <configuration>
        <fork>true</fork>
    </configuration>
    <extensions>true</extensions>
</plugin>

【问题讨论】:

    标签: maven grails-2.0


    【解决方案1】:

    就像 Niels 说的,如果你要 fork Grails 进程(默认为 true),你可以将 forkedVmArgs 添加到 pom:

    <plugin>
      <groupId>org.grails</groupId>
      <artifactId>grails-maven-plugin</artifactId>
      <version>${grails.version}</version>
      <configuration>
        <!-- Whether for Fork a JVM to run Grails commands -->
        <fork>true</fork>
        <forkedVmArgs>
          <forkedVmArg>-Dserver.port=9003</forkedVmArg>
        </forkedVmArgs>
      </configuration>
      <extensions>true</extensions>
    </plugin>
    

    http://jira.grails.org/browse/MAVEN-177

    【讨论】:

      【解决方案2】:

      由于您使用了 fork 选项,因此它会生成一个执行时的新 shell,它可能不会继承您的参数。

      尽量不要分叉,看看是否有帮助。

      或者,您显然可以使用以下方法向插件添加一些 fork 参数:

      <forkedVmArgs>
        ...
      </forkedVmArgs>
      

      【讨论】:

        【解决方案3】:
        mvn grails:exec -Dcommand=run-app -Dserver.port=8081
        

        【讨论】: