“mvn install”命令与使用 jar:jar 插件有什么区别?
很明显,“安装”似乎构建了一个 jar,因此,我想知道 jar:jar 插件的需求是什么。
“mvn install”命令与使用 jar:jar 插件有什么区别?
很明显,“安装”似乎构建了一个 jar,因此,我想知道 jar:jar 插件的需求是什么。
您可以在 maven 命令行上指定两种类型的内容:
生命周期阶段(这些不包括:字符)
插件目标(这些包括至少一个:字符,取决于您对插件的指定程度,可能是short-name:goal或groupId:artifactId:goal或groupId:artifactId:version:goal)
共有三个生命周期:默认、干净和站点。每个生命周期都由一系列阶段组成。当您在生命周期中指定一个阶段时,Maven 将按该生命周期中的所有阶段的顺序执行,直到并包括指定的阶段。
当您指定插件目标时,将调用该插件目标并且仅调用该插件目标。
Maven 有一个包装的概念,它定义了一组默认的插件绑定到生命周期阶段。例如jar,默认情况下包装(除非您pom.xml包含<packaging>...</packaging>元素,否则默认情况下)绑定jar:jar到package阶段并绑定install:install到install阶段。
所以当你输入
$ mvn package
Maven 将在生命周期阶段一直运行,执行绑定的插件(从生命周期或通过在 pom 中指定插件执行)。
当您键入
$ mvn jar:jar
Maven 将只运行 jar 插件的 jar 目标。
生命周期是您想要使用的 100 次中的 99 次。
以下是您通常希望直接调用插件目标的时间
jetty:run启动 webapp 服务器
surefire:test快速重新运行测试(通常-Dtest=...指定特定的
release:prepare release:perform发布你的代码
versions:...对版本相关的东西进行一些更新或查询,例如versions:display-plugin-updates
ship:ship或cargo:deployer-deploy将您构建的工件推送(运送)到托管环境
install将工件放在您的本地(在您的机器上)maven 存储库中,jar:jar而不是。如果您调用jar:jar一个库,然后尝试在另一个项目中引用该库,它将不在您的本地存储库中。
另请注意,这mvn package是一种更清洁的包装方式,而不是使用jar:jar.
mvn install命令将“执行” maven 生命周期直到安装阶段。这意味着将执行所有先前的阶段(包括打包阶段)。
在一个简单的 maven jar 项目中,包阶段绑定到 maven-jar-plugin。所以执行mvn install将在某个时候执行jar:jar。