我是一个maven新手。我的项目依赖于另一个Maven项目(ProjectA),因为我需要在ProjectA上运行mvn clean package
,它给了我JarA。maven项目依赖项是一个生成的jar(不在maven仓库中)
然后,我需要运行java JarA给它提供一个xml配置文件,它给了我另一个JarB。我需要JarA和JarB作为依赖项目(ProjectB)。
是否有可能在projectB的pom文件中实现这些步骤?会有配置的父子模块类型有帮助吗?谢谢!
我是一个maven新手。我的项目依赖于另一个Maven项目(ProjectA),因为我需要在ProjectA上运行mvn clean package
,它给了我JarA。maven项目依赖项是一个生成的jar(不在maven仓库中)
然后,我需要运行java JarA给它提供一个xml配置文件,它给了我另一个JarB。我需要JarA和JarB作为依赖项目(ProjectB)。
是否有可能在projectB的pom文件中实现这些步骤?会有配置的父子模块类型有帮助吗?谢谢!
也许吧。获得JarB最简单的解决方案是向项目A添加单元测试。但是这并不能告诉Maven关于这个JAR,所以它会忽略它。
下一步将是测试将JarB编写为JarA-config到项目A的target/
文件夹中。Maven支持将多个构件作为“构建结果”。然后你可以使用“限定词”来区分它们。使用告诉Maven有关第二个JAR的信息。例如,请参阅“Attach additional artifacts to your project”。
请注意,package
发生在test
之后,因此您的测试用例可以创建第二个JAR,然后build-helper
将会找到它。
在项目B,然后你可以使用这个取决于双方的JAR
<dependency>
<groupId>x</groupId>
<artifactId>jarA</artifactId>
</dependency>
<dependency>
<groupId>x</groupId>
<artifactId>jarA</artifactId>
<classifier>config</classifier>
</dependency>
注意额外<classifier>
元素。
注:对于这个工作,你需要在项目A.运行mvn install
听起来像是你可能想利用Maven的模块,如果这些项目是紧密依赖于他人。如果它们不是紧密依赖的(即它们是独立和不同的项目),那么你可能只想简单地使用'mvn install'来将每个项目放入本地存储库。 – Crollster