如何从maven repo中的jar中删除版本信息

时间:2012-11-29 04:46:06

标签: java maven

今天,如果我们使用Maven构建,jar名称是$ {project.artifactId} - $ {project.version}。在本地存储库中,结构如下:

-\.m2
---\repository
-----\com
-------\someproject
---------\1.0
-----------\someproject-1.0.jar

我想知道路径已经准确地说明了版本,为什么jar名称应该这样命名。有没有方法可以删除存储库中jar名称中的版本信息?我尝试了但是当将jar复制到存储库时它不起作用。

我搜索了这个问题,发现了很多类似的问题。当打包成战争或耳朵时似乎没关系,罐子怎么样?有些人几年前回答不可能,所以我想知道今天是否有人有解决方案。

我更喜欢:     -.m2     --- \库     ----- \ COM     ------- \ someproject     --------- \ 1.0     ----------- \ someproject.jar

1 个答案:

答案 0 :(得分:4)

maven约定是将工件命名为<artifact>-<version>.jar。虽然在文件夹和工件中拥有版本号似乎是多余的,但有理由这样做。

它存储在存储库中具有版本号的文件夹中的原因是因为可能还存在与工件相关联的其他文件(源,pom等)。

将工件附加到工件以及分发应用程序也是有意义的。当库与您的应用程序打包在一起时,了解打包依赖项的哪个版本而不必查看pom是很有用的(在查看依赖关系图时也是如此)。

即使您可以使工件名称没有附加版本号,也不建议使用它,因为我确信有些东西会因为它们依赖于这些maven约定而破坏(maven更多是关于约定而不是配置)。