[英]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.