我正在寻找一种方法将所有模块包含在来自另一个pom.xml的项目中。所以在我的情况下,我有一个包装设置为pom的父级pom。它包含3个子模块,在另一个api模块中实现我的接口。我想动态地将所有子模块包含在maven项目中。如何包含pom项目中的所有模块
在这种情况下,我想将connector1,connector2,connector3包含在另一个模块中,而不必明确指定connector1,2,3。
connectors - packaging: pom
connector1 - packaging: jar
connector2 - packaging: jar
connector3 - packaging: jar
我试过在我的项目中包括连接器pom,但这没有奏效。我希望用pom指定父包将包含子模块,但这不起作用。有没有任何解决方法如何做到这一点?
更新
这更雷的忿怒,因为我想简单地添加一个连接器,并有该项目包含所有子模块依赖罐子。这会让pom更简单一些。
而不必注册所有子依赖像这么
<dependencies>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector1</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector1-api</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector1-etl</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector1-persistence</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector2</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector2-api</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector2-etl</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector2-persistence</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector2-other</artifactId>
<version>0.0.1</version>
</dependency>
...
</dependencies>
这只是为了澄清原来的问题的例子。它不存在,如果它确实有效,可能会有反响。
<dependencies>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector1</artifactId>
<version>0.0.1</version>
<type>pom</type>
<include>submodules</include>
</dependency>
<dependency>
<groupId>com.foo</groupId>
<artifactId>connector2</artifactId>
<version>0.0.1</version>
<type>pom</type>
<include>submodules</include>
</dependency>
</dependencies>
如果我没有记错,我创造了一个订货系统在那里我有一个通用的API,我们的内部系统将使用(REST)模块化项目。我创建了一个路由系统,我可以根据订单的标准(国家,优先税等)将订单发送到单个履行中心。每个履行中心都有自己的api(连接器)。
该示例在原始问题中大大简化,使问题更加简洁。在实际的项目中,每个连接器(1,2,3)都将是一个独立的pom,并带有多个依赖关系罐。一个用于他们的客户端api,然后是一些etl代码来匹配我的原始api。
我不记得我是如何解决这个问题的。我想我只需要包含所有的子依赖项。
你有一个地方的示例项目(github?),我们可以得到一个更好的印象你到底想要做什么? – khmarbaise 2014-10-21 16:41:45
@RobinJonsson问题不明。 *包括*在这里意味着什么?你想要什么最终结果?你的意思是你想要自动填写'connectors' POM中的''部分吗?或者别的地方?你能扩大一点吗? –
Tunaki
2016-04-06 21:32:17
@Tunaki我想要的结果是能够添加新的“connectorX”包,而无需将它们指定为其他地方的依赖项。假设我有另一个打包为WAR的模块。我想添加一个从WAR到“连接器”的依赖项,每当我向连接器添加一个新的“子模块”(可能是connector4)时,它都会自动打包WAR文件。我的连接器没有所需的封装格式。连接器是否作为单独的JAR或超级罐被包装并不重要。只要它们包含在我的WAR中。 – 2016-04-07 06:19:18