首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mvn安装vs jar:jar

mvn安装vs jar:jar
EN

Stack Overflow用户
提问于 2013-01-15 06:45:23
回答 3查看 3.7K关注 0票数 4

使用"mvn install“命令和使用jar:jar插件有什么不同?

很明显,"install“似乎构建了一个jar,因此,我想知道对jar:jar插件的需求是什么。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-15 07:03:27

mvn install命令将“执行”maven lifecycle直到安装阶段。这意味着将执行之前的所有阶段(包括包阶段)。

在一个简单的maven jar项目中,包阶段被绑定到maven-jar-plugin。因此,执行mvn install将在某个时刻执行jar:jar

票数 2
EN

Stack Overflow用户

发布于 2013-01-15 06:55:27

您可以在maven命令行上指定两种类型的内容:

  • 生命周期阶段(这些阶段不包括:插件目标(这些阶段至少包括一个:字符,具体取决于您指定插件的完整程度,它可以是short-name:goalgroupId:artifactId:goalgroupId:artifactId:version:goal)

three lifecycles:default、clean和site。每个生命周期由一系列阶段组成。当您在生命周期中指定一个阶段时,Maven将按顺序执行该生命周期中的所有阶段,直到并包括指定的阶段。

当您指定一个插件目标时,将调用该插件目标,并且仅调用该插件目标。

Maven有一个打包的概念,它定义了生命周期阶段的default set of plugin bindings。例如,默认情况下,jar打包(除非pom.xml包含<packaging>...</packaging>元素,否则为默认打包)将jar:jar绑定到package阶段,并将install:install绑定到install阶段。

所以当你键入

代码语言:javascript
复制
$ mvn package

Maven将在整个生命周期阶段运行,同时执行绑定的插件(要么来自生命周期,要么在pom中指定插件执行)。

当你输入的时候

代码语言:javascript
复制
$ mvn jar:jar

Maven将只运行jar插件的jar目标。

它的生命周期是你想要使用的100次中的99次。

以下是您通常希望直接调用插件目标的情况

  • jetty:run启动the应用程序server
  • surefire:test快速重新运行测试(通常使用-Dtest=...指定发布code
  • versions:...的特定one
  • release:prepare release:perform执行一些版本相关内容的更新或查询,例如,使用versions:display-plugin-updates
  • ship:shipcargo:deployer-deploy将构建的构件推送(运送)到托管环境
票数 18
EN

Stack Overflow用户

发布于 2013-01-15 06:46:56

install将工件放在本地(在您的机器上) maven存储库中,而jar:jar不会。如果您在一个库上调用jar:jar,然后尝试在另一个项目中引用该库,它将不在您的本地存储库中。

还要注意,与使用jar:jar相比,mvn package是一种更干净的打包方式。

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

https://stackoverflow.com/questions/14328183

复制
相关文章

相似问题

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