[英]maven: can't override server.port for tomcat server
我是 Maven/SpringBoot 的新手,正在尝试部署具有不同 Tomcat 服务器端口的存储库。
默认情况下,我很乐意在 8080 上运行 tomcat。 但是今天,我想在我的项目中添加 Jenkins 管道,我在 spring 云网关存储库之前部署了 tomcat on:8080(上面有 jenkins)。
现在,一旦我尝试部署网关,编译器显然会说address:8080 already in use
。
现在,我希望我的网关在另一个端口上部署 Tomcat(或者如果可能的话在 8080 上使用已经存在的 tomcat?)所以我想使用这个命令来部署它:
$ mvn spring-boot:run -Dserver.port=8181
但是,基于:8080
的相同错误恰好出现:
[错误] 无法在项目 crw-gateway 上执行目标 org.springframework.boot:spring-boot-maven-plugin:1.5.8.RELEASE:run (default-cli):运行时发生异常。 null:InvocationTargetException:配置为侦听端口 8080 的连接器无法启动。
我尝试将server.port=8080
放入application.properties
或application-dev.properties
文件,但我无法覆盖它。
有任何想法吗? 我怎样才能覆盖端口? 有没有可能我可以在 8080 上使用现有的 tomcat 服务器?
感谢您的时间!
编辑:我的配置在 ~/config 文件夹下。 在那里,我有gateway.properties
,其中包括server.port=8080
行。 正如已接受的答案所断言的那样,它已经覆盖了命令行界面。 将其更改为 8888 有效。
根据Spring 引导文档:
Spring Boot 使用非常特殊的 PropertySource 顺序,该顺序旨在允许合理地覆盖值。 按以下顺序考虑属性:
- 主目录上的 Devtools 全局设置属性(
~/.spring-boot-devtools.properties
当 devtools 处于活动状态时)。- 测试上的
@TestPropertySource
注释。- @
SpringBootTest#properties
测试上的注释属性。- 命令行 arguments。
- 来自
SPRING_APPLICATION_JSON
的属性(嵌入在环境变量或系统属性中的内联 JSON)。ServletConfig
初始化参数。ServletContext
初始化参数。- 来自
java:comp/env
的 JNDI 属性。- Java 系统属性 (
System.getProperties()
)。- 操作系统环境变量。
- 仅在
random.*
中具有属性的RandomValuePropertySource
。- 打包的 jar(
application-{profile}.properties
和 YAML 变体)之外的特定于配置文件的应用程序属性。- 打包在您的 jar 中的特定于配置文件的应用程序属性(
application-{profile}.properties
和 YAML 变体)。- 打包 jar 之外的应用程序属性(
application.properties
和 YAML 变体)。- 打包在您的 jar 中的应用程序属性(
application.properties
和 YAML 变体)。@Configuration
类上的@PropertySource
注释。- 默认属性(通过设置
SpringApplication.setDefaultProperties
指定)。
所以你的问题是你的命令行 (4.) 不能覆盖application.properties
文件配置 (13., 14., 15.)。
如果你想覆盖server.port
属性,你需要确保在你的配置中遵守这个顺序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.