JavaMaven项目是否获得其他Maven项目的版本?
我必须管理客户机和服务器上的项目。服务器的版本始终是客户端的版本。这个“版本”不是客户端maven工件的版本。更多的是来自客户端的属性,我需要它在服务器中。它是根据pom的属性和构建号或“主干快照”(当客户端在开发人员机器上构建时)创建的
客户端版本在构建时创建(Jenkins build或本地mvn clean install)。我需要使用Java读取服务器模块上的客户端版本
最好的方法是什么
我试图创建一个文本文件作为客户端的工件,但我找不到在服务器上读取它的简单方法
# 1 楼答案
我在客户端使用properties maven插件创建了一个属性文件来解决这个问题,该文件最终会出现在客户端。罐子我使用ClassLoader在服务器上读取它。getSystemResourceAsStream(“my.properties”)
# 2 楼答案
最简单的解决方案是在父pom文件中定义一个属性,并在客户端和服务器模块中引用该属性
现在是pom家长。xml将包含以下内容
在服务器和客户端pom中。xml文件,您可以如下引用它
# 3 楼答案
在这里查看POM文档:https://maven.apache.org/guides/introduction/introduction-to-the-pom.html。具体来看项目聚合:https://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Project_Aggregation
您可能需要的是一个父POM,它有一个用于客户端的模块和一个用于服务器的模块
您的项目结构如下所示:
然后,您可以在父pom中定义版本,并由客户端和服务器继承它。要定义构建编号,可以使用lkamal建议的解决方案,通过更改Maven version属性
另一个要考虑的选项是生成生成号的方式。Maven的Build Number Plugin可以生成任意顺序的内部版本号,也可以从SCM版本生成一个