java - 为什么 Maven 在 target 和 groupId 目录中为相同的源创建两个 jar

标签 java maven jar target

我有一个 Maven 项目,srcpom 具有以下 groupIdartifactId

<groupId>com.useless.coders</groupId>
<artifactId>nonsense-program</artifactId>
<version>0.0.1</version>
<packaging>jar</packaging>

现在,当我们使用 mvn clean install 构建 jar 时,会创建一个目标文件夹,其 jar 名称和版本为 nonsense-program-0.0.1 。当我导航到文件夹结构 com/useless/coders/ 中的 .m2 存储库时,我可以看到在 maven- 中还使用额外的元数据信息创建了相同的 jar元数据-local.xml。我知道 Maven 存储库的用途,并且在 target 目录中,我们将构建的所有输出与生成的 .class 文件以及 jar 和/或 libs 放在一起。

但我很想知道为什么我们维护两个相同源的 jar 副本,一个在 target 目录中,另一个在 groupId 路径目录中。我们不会节省一些空间。

最佳答案

这是因为您指示 Maven 这样做。如果调用 mvn clean package(而不是 install),只会创建 target 下的 Jar。 install 阶段告诉 Maven 将生成的 Jar 保存在本地存储库中。

关于java - 为什么 Maven 在 target 和 groupId 目录中为相同的源创建两个 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34558762/

相关文章:

java - 如何清除Redis Stream中的记录,只留下N条最新记录?

maven - 如何使用Docker Maven插件创建依赖的Docker镜像?

c# - 如何从 C# 运行 Java(一个 JAR 文件)?

java - 第三方库来创建 jar 文件?

java - 使用 Intellij 为 Java 代码创建 Jar 文件

java - Mule 中的FunctionalTestCase - 如何在另一个流程之前加载一个流程?

java - 在选择发生之前验证 JList

Java Frame 本身大小错误

java - 安装带有依赖的jar到maven仓库(Android gcm-server push library)

java - 我可以在同一个 Maven 项目的源文件中动态生成和引用一个类吗?