我有几个maven项目:
虽然 commons-lib 不太可能单独发布,但所有其他项目(父项除外)可能会单独发布。
如果列表中的前四个是第五个子模块,那么必须将其父级设置为父级(例如all-services-parent)作为回报吗?
由于我想在用户和复合服务中包含 commons-lib ,我知道我必须首先构建它。但是:上面的每项服务都可以单独发布 - 那么哪种建筑结构最适合我需要的呢?
是不是:
-- all-services-parent
|-- (maven sub-module) commons-lib
|-- (maven sub-module) user-service
|-- (maven sub-module) composite-service
|-- (maven sub-module) frontend-service
或:
-- all-services-parent
|-- user-service-parent
|-- (maven sub-module) commons-lib
|-- (maven sub-module) user-service
|-- composite-service-parent
|-- (maven sub-module) commons-lib
|-- (maven sub-module) composite-service
|-- frontend-service
第二个建筑结构允许我通过调用" mvn clean install"来构建所有JAR。在all-services-parent上,同时仍然可以通过调用" mvn clean install"来正确构建单独的项目。在相应的父母身上,但它真的是如何完成的吗?
在我目前的设置中,我正在尝试使用第一个建筑结构,但是复合服务有" spring-boot-starter-parent"设置为其父级,我无法访问" all-services-parent" -module中的属性或任何内容。
我读到了Maven parent pom vs modules pom(一个看起来很有希望的问题),但它并不像我希望的那样适用于我的案例。
答案 0 :(得分:1)
尝试导入spring boot parent而不是像这样继承它:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
答案 1 :(得分:0)
父模块属性文件可以通过子模块访问,但子模块属性文件无法访问其他子模块。
或
您需要为每个子模块执行单独的属性文件。
答案 2 :(得分:0)
在pom.xml文件中添加这样的子模块,并给出其绝对路径。
这应该是工作
<modules>
<module>../TestWeb</module>
<module>../TestBusiness</module>
<module>../MsgScheduler</module>
<module>../Connector</module>
</modules>