基本上,我有一个多模块项目如下:不能在一个多模块项目妥善包装春天启动应用程序
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'运行。 –