Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在maven repo中从jar中删除版本信息_Java_Maven - Fatal编程技术网

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

Java 如何在maven repo中从jar中删除版本信息,java,maven,Java,Maven,今天,如果我们使用Maven构建,jar名称是${project.artifactId}-${project.version}。在本地存储库中,结构如下所示: -\.m2 ---\repository -----\com -------\someproject ---------\1.0 -----------\someproject-1.0.jar 我想知道路径已经准确地告诉了版本,为什么jar名称应该这样命名。是否有任何方法可以删除存储库中jar name中的版本信息?我尝试了这个方法,但

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

-\.m2
---\repository
-----\com
-------\someproject
---------\1.0
-----------\someproject-1.0.jar
我想知道路径已经准确地告诉了版本,为什么jar名称应该这样命名。是否有任何方法可以删除存储库中jar name中的版本信息?我尝试了这个方法,但是当将jar复制到存储库中时,它不起作用

我搜索了这个问题,发现了很多类似的问题。当包装成战争或耳朵时,它似乎是好的,那么罐子呢?一些人在几年前回答说不可能,所以我想知道今天是否有一些人有解决办法

我更喜欢: -.m2 ---\存储库 -----\com -------\某个项目 ---------\1.0
-----------\someproject.jar

maven约定是将工件命名为
-.jar
。虽然在文件夹和工件中有版本号似乎是多余的,但这是有原因的

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

将版本号附加到工件上对于应用程序的分发也是有意义的。当库与您的应用程序打包时,不必查看pom就可以知道打包了哪些版本的依赖项(查看依赖项图时也是如此)


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

maven约定是将工件命名为
-.jar
。虽然在文件夹和工件中有版本号似乎是多余的,但这是有原因的

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

将版本号附加到工件上对于应用程序的分发也是有意义的。当库与您的应用程序打包时,不必查看pom就可以知道打包了哪些版本的依赖项(查看依赖项图时也是如此)


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

+1对于为什么会出现这种情况的很好解释,感谢您善意的解释。我想做这件事的原因如下:1。添加版本信息2时,jar名称太长。如果其他人使用我们制作的罐子,名称看起来不太合适。ps:我们的JAR似乎只有一个版本……那么,只要使用来以您想要的任何方式组装文件就行了……更简单的解决方案实际上回答了这个问题——在pom的构建部分使用finalName属性${project.artifactId}+1,您可以很好地解释为什么会出现这种情况,谢谢您的善意解释。我想做这件事的原因如下:1。添加版本信息2时,jar名称太长。如果其他人使用我们制作的罐子,名称看起来不太合适。ps:我们的JAR似乎只有一个版本……那么,只要使用来以您想要的任何方式组装文件就行了……更简单的解决方案实际上回答了这个问题——在pom的构建部分使用finalName属性${project.artifactId}我不同意。这个问题是关于本地Maven存储库的,另一个是关于EAR程序集的,我不同意。这个问题是关于本地Maven存储库的,另一个是关于EAR程序集的。