簡體   English   中英

為什么spring boot在打包時不加載應用程序yml(帶gradle)?

[英]why spring boot does not load application yml when packaged (With gradle)?

到目前為止沒有發現任何有趣的東西,所以我在這里問一個問題。

我有一個 Spring Boot 應用程序,運行良好。 問題是:自定義配置! 我希望它在端口 8081(而不是默認端口 8080)上運行。 因此,我在 src/main/resources 目錄中添加了 application.yml,將其打包...並且它在端口 8080 上運行當我從 intellij 運行 @SpringBootApplication 類時,它確實在端口 8081 上運行(我剛剛添加了應用程序。 yml 文件。)那為什么?

這是一個 gradle 多模塊項目。 T將application.yml文件加入到實際打包成jar文件的模塊中。 它使用 tha gradle shadow 插件打包,並且在 jar 文件的根目錄中包含 application.yml 文件。

application.yml 是這樣的:

server:
    port: 8081

我真的不知道您需要哪些信息,所以請隨時詢問!

歡迎任何想法。

編輯 1:啟動服務器時的“堆棧跟蹤”:

java -jar serverApp.jar 

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                        

août 29, 2020 5:50:54 PM org.apache.coyote.AbstractProtocol init
INFOS: Initializing ProtocolHandler ["http-nio-8080"]
août 29, 2020 5:50:54 PM org.apache.catalina.core.StandardService startInternal
INFOS: Starting service [Tomcat]
août 29, 2020 5:50:54 PM org.apache.catalina.core.StandardEngine startInternal
INFOS: Starting Servlet engine: [Apache Tomcat/9.0.37]
août 29, 2020 5:50:54 PM org.apache.catalina.core.ApplicationContext log
INFOS: Initializing Spring embedded WebApplicationContext
août 29, 2020 5:50:55 PM org.apache.coyote.AbstractProtocol start
INFOS: Starting ProtocolHandler ["http-nio-8080"]

在沒有看到實際代碼的情況下,我可以推薦兩件事來嘗試。

1-您是否錯過了在 main 方法中使用參數-

public static void main(String[] args) {
    SpringApplication.run(ServerApplication.class, args);
}

2-嘗試使用參數啟動springboot服務器-

java -jar -Dserver.port=8081 ServerApplication.jar

根據評論,Shadow Plugin 似乎不適合與 Spring Boot 一起使用:

引導框架有自己的 gradle 插件和用於打包可分發 jar 文件的方法。 我不認為我會在同一個項目中結合 shadow 和 boot 插件。 他們會碰撞。

還有這個

暫無
暫無

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

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