apache maven 中的版本控制

Versioning in apache maven

我目前正在学习处理 GIT 和 Maven 之类的东西。到目前为止,我已经很好地理解了这些概念,并且有信心在将来使用这两个。

但是关于 Maven 有一件事我不明白,而且我似乎也找不到令人满意的答案。所以,如果已经有答案了,我太笨了也找不到,我对所有浪费时间的人感到抱歉,但是谢谢 non-the-less 如果你能给我指路到我自己能找到答案的地方。

因此,我的问题涉及 Maven 中的版本控制。我通过依赖项获得它,您指定哪个版本,即您想要的 jar。 -SNAPSHOT 版本标签将提示 Maven 每天下载一次或两次,因为它可能是带有该标题的更新版本。我的问题在于您自己进行的版本控制

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <version>0.0.1-SNAPSHOT</version>

</project>

在此示例 pom 中,我的示例应用程序的版本设置为 0.0.1-SNAPSHOT。我知道这在版本号方面意味着什么,但如果我要增加这个数字,那就是我的问题所在。我读过可以使用插件自动增加它,或者以某种方式将它连接到 GIT 提交,这样你就可以用它来设置它。我知道这可能对大公司规模的项目有用,因为您不仅有一个 pom,而且可能有更多。但是如果我有自己的小项目,只有一个或两个 pom,我不能只在 xml 视图中打开 pom 并手动将其更改为我选择的更高版本(根据当然是版本规范),还是我必须使用某种插件?这“只是一个数字”让我和其他人看到进展,它是否是一个稳定的版本,或者它是否与 Maven 中的某些内部机制有关?我不知道为什么会这样,但是如果我增加数字,它是否会保存每个旧版本的代码,这样我就可以在需要时返回到旧版本(可能 Git 会解决这个问题,但我将不得不搜索它具有此版本的最后一次提交)。 -SNAPSHOT 或 -RELEASE 标记是否会更改 Maven 内部行为中的任何内容?它会影响某些东西,还是只是为了让阅读版本号的人从中获取信息?我还读到你可以将它连接到 git 并以某种方式制作一些带有发布分支的东西,而不是以某种方式设置版本......听起来很酷但是吧?

所以,这可能有点多,但我希望你能看出我的问题所在。我只是不知道自己设置的版本号在 maven 中的规模和功能以及我如何最好地处理它。

我非常感谢任何阅读我的胡言乱语并感到能够提供帮助的人提前提供的所有帮助。

美好的一天。

您可以手动更改版本号。或者您可以使用类似 versions 的插件,它可以一次更改多个位置的数字。这是你的选择。对于开发,使用以 -SNAPSHOT

结尾的版本

对于依赖关系,Maven 区分发布版本和快照版本(后者是那些以 -SNAPSHOT 结尾的版本)。与发布版本的依赖关系被认为是固定的,而快照依赖关系可能会改变。