首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven正在生成2个JAR,而我只需要一个

Maven正在生成2个JAR,而我只需要一个
EN

Stack Overflow用户
提问于 2012-09-29 04:02:05
回答 2查看 116关注 0票数 0

这是我的'mvn package‘命令的一些输出:

代码语言:javascript
复制
[INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ my-project ---
[INFO] Building jar: /Users/sfrazer/projects/my-project/target/my-project-0.0.1.jar
[INFO] 
[INFO] --- maven-assembly-plugin:2.2-beta-5:single (jar-with-dependencies) @ my-project ---
[INFO] Building jar: /Users/sfrazer/projects/my-project/target/my-project-0.0.1-jar-with-dependencies.jar

第二个jar是我指定要构建的正确jar,但是我不知道为什么要创建第一个jar。所以我有两个问题:

1)为什么要创建第一个JAR?

2)如何将第二个JAR命名为第一个JAR的名称?

pom.xml非常长,但下面是构建第二个JAR的相关部分:

代码语言:javascript
复制
<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <configuration>
    <archive>
      <manifest>
        <mainClass>my.package.App</mainClass>
      </manifest>
    </archive>
    <descriptorRefs>
      <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
  </configuration>
  <executions>
    <execution>
      <id>jar-with-dependencies</id>
      <phase>package</phase>
      <goals>
        <goal>single</goal>
      </goals>
    </execution>
  </executions>
</plugin>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-29 04:05:42

因为带有依赖项的jar执行被定义为额外的执行,而不是常规jar目标的替换,常规jar目标是常规包或安装运行的一部分。

一些人试图在this question中禁用它,但一般来说,当制作一个包含所有依赖项的jar时,“普通jar”只是与它一起打包/保持不变。

票数 2
EN

Stack Overflow用户

发布于 2012-09-29 04:05:53

之所以创建my-project-0.0.1.jar,是因为对于具有package打包的项目,maven-jar-plugin:jar会自动绑定到jar阶段。

禁用它不是一个好主意,因为依赖于my-project工件的其他项目可能只想包含一个包含my-project的JAR,而不想包含一个包含其所有依赖项的超级jar。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12646639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档