maven - jar 名称中的版本

标签 maven intellij-idea

当我将 mvn 项目导入 Intellij 时,它生成的 jar 文件不包含版本。但是 mvn 生成的 jar 有 name-version.jar格式。所以我最终得到了两个 jar 文件,一个带有版本,另一个没有版本。我当然可以在 Intellij 设置中更改模块名称以包含版本。但是每当我更改 pom 文件时,它都会被重置。

也许其他人有更好的主意?

最佳答案

Maven 在磁盘上生成的 jar 名称由 /project/build/finalName 控制。所以如果你编辑你的pom.xml看起来像

<project>
  ...
  <build>
    ...
    <finalName>${artifactId}</finalName>
    ...
  </build>
  ...
</project>

然后 Maven 将生成没有版本的 jar 文件。

笔记
finalName只控制磁盘上文件的名称。一旦该文件被传输到本地存储库缓存或远程存储库,它将被重命名以匹配存储库布局(即 ${artifactId}-${version}.${type}${artifactId}-${version}-${classifier}.${type} 用于带有分类器的 Artifact )。您无法更改存储库使用的格式。

我添加上面的注释是因为每个人在了解 finalName 后似乎都想做的第一件事。参数是尝试更改存储库中的名称。

关于maven - jar 名称中的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17024803/

相关文章:

java - 如何将 Maven 外部存储库配置为特定于依赖项

java - 通过插件以编程方式刷新/同步 IntelliJ IDEA 项目

java - 生成构建器方法而不是 setter

ScalaTest v3 : why require to implement convertToLegacyEqualizer

java - 将多个 Maven 目标组合到一个目标中

Maven 构建失败 - 找不到插件

maven - 在 Maven 构建之后,tar gz 文件包含损坏的 jar 文件

java - 将源文件夹添加到我的 Eclipse 项目中的generate-sources

java - 无论如何,Idea 中是否可以识别同一模块中 lombok 生成的 getter/setter

grails - 从Grails 2.x升级到3.x