我想将我的Java项目构建成两个不同的版本,每个版本都基于相同依赖项上的不同版本。具体来说,我的项目A需要依赖项B,它有两个不同的版本(例如v1和v2)。我打算用B的每个依赖版本构建项目A,并获取两个不同的jar文件:A-v1.jar和A-v2.jar。源代码是相同的,所以我不想将它复制到两个不同的Maven项目中,因为我期望在B版的新版本发布时进行扩展。从同一个源代码分支构建不同的项目版本
我到目前为止的尝试:我定义了两个构建配置文件v1和v2,其中我已经指定了依赖项B的版本。这可以正常工作,因为我可以构建两个配置文件,但问题是我不知道如何告诉Maven向构建工件添加版本号。它始终将项目A构建到A-1.0.jar中,其中1.0是pom中的项目A版本。
我调查的一个更新:我在父pom的构建部分中添加了一个finalName元素来覆盖默认工件命名。现在命名将如$ {artifactId} - $ {project.version.mycustomver},其中project.version.mycustomver属性在每个构建配置文件中定义。这似乎会生成jar的正确命名,但是maven-install-plugin正在将工件名称更改回$ {artifactId} - $ {version}。不知道为什么以及如何避免它。
我欣赏任何建议。谢谢, DanP
您可以简单地将依赖关系定义为'提供的 ',您将只创建一个工件。你的lib的用户可以简单地通过添加适当的依赖版本来决定。不需要有你自己的神器的不同版本等。 –
khmarbaise