基本上,我有一個多模塊項目如下:不能在一個多模塊項目妥善包裝春天啓動應用程序
parent-project
├── core-app
└── web-app
core-app
和web-app
都是春天啓動的項目,他們的父母是parent-project
而不是spring-boot-starter-parent
。所以,正因如此,它們都具有:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<type>pom</type>
<version>${spring.boot.version}</version>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
在他們pom.xml
,以及:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot.version}</version>
<configuration>
<executable>true</executable>
</configuration>
</plugin>
這樣的設置完全內的IntelliJ運行,但是,如果我package
的應用程序,我得到一個非常小.jar
和基本上如果我試圖運行它可執行文件,我得到幾個command not found
錯誤。
如果我用java -cp my.jar com.Main
運行它,我得到SpringApplication not found
。所以從這裏我知道core-app
和web-app
沒有jar中的所有依賴關係。
如果我將它構建爲以spring-boot-starter-parent
作爲其父項的獨立.jar
;有用。
我在做什麼錯?謝謝。
更新:
現在這是發生了什麼事,當我mvn package
。然而,當我實際執行mvn spring-boot:repackage
我越來越:
Execution default-cli of goal org.springframework.boot:spring-boot-maven-plugin:1.5.2.RELEASE:repackage failed: Source must refer to an existing file
由於這裏建議this似乎解決了問題,但我懷疑這可能不是標準的方式。例如:
mvn clean package spring-boot:repackage
訣竅,但是,我不能mvn clean && mvn package && mvn spring-boot:repackage
。我希望對此有所解釋。謝謝!
只是一個想法 - 當您已經將產品作爲微服務運輸時,需要多模塊項目嗎? –
我需要將域對象/ POJO分離到一個模塊中,以便非技術人員在完全不同的應用程序中使用它們。 –
您應該使用'java -jar my.jar'而不是'java -cp my.jar com.Main'運行。 –