簡體   English   中英

maven:無法覆蓋 tomcat 服務器的 server.port

[英]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.propertiesapplication-dev.properties文件,但我無法覆蓋它。

有任何想法嗎? 我怎樣才能覆蓋端口? 有沒有可能我可以在 8080 上使用現有的 tomcat 服務器?

感謝您的時間!

編輯:我的配置在 ~/config 文件夾下。 在那里,我有gateway.properties ,其中包括server.port=8080行。 正如已接受的答案所斷言的那樣,它已經覆蓋了命令行界面。 將其更改為 8888 有效。

根據Spring 引導文檔

Spring Boot 使用非常特殊的 PropertySource 順序,該順序旨在允許合理地覆蓋值。 按以下順序考慮屬性:

  1. 主目錄上的 Devtools 全局設置屬性( ~/.spring-boot-devtools.properties當 devtools 處於活動狀態時)。
  2. 測試上的@TestPropertySource注釋。
  3. @ SpringBootTest#properties測試上的注釋屬性。
  4. 命令行 arguments。
  5. 來自SPRING_APPLICATION_JSON的屬性(嵌入在環境變量或系統屬性中的內聯 JSON)。
  6. ServletConfig初始化參數。
  7. ServletContext初始化參數。
  8. 來自java:comp/env的 JNDI 屬性。
  9. Java 系統屬性 ( System.getProperties() )。
  10. 操作系統環境變量。
  11. 僅在random.*中具有屬性的RandomValuePropertySource
  12. 打包的 jar( application-{profile}.properties和 YAML 變體)之外的特定於配置文件的應用程序屬性。
  13. 打包在您的 jar 中的特定於配置文件的應用程序屬性( application-{profile}.properties和 YAML 變體)。
  14. 打包 jar 之外的應用程序屬性( application.properties和 YAML 變體)。
  15. 打包在您的 jar 中的應用程序屬性( application.properties和 YAML 變體)。
  16. @Configuration類上的@PropertySource注釋。
  17. 默認屬性(通過設置SpringApplication.setDefaultProperties指定)。

所以你的問題是你的命令行 (4.) 不能覆蓋application.properties文件配置 (13., 14., 15.)。

如果你想覆蓋server.port屬性,你需要確保在你的配置中遵守這個順序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM