“mvn clean”与“mvn clean install”(当插件执行附加到“clean”时)

J·斯莫利克

假设我想在编译项目之前将项目本地依赖项(jar 文件)安装到我的本地 maven 存储库 (~/.m2),这样我就可以在我的 POM 中引用它们,就像我从 Maven Central 引用任何依赖项一样。目前,我正在使用 Maven 安装插件的安装文件目标附加到“干净”阶段(因为我的 IDE 使用它),如下所示:

<dependencies>
   <dependency>
      <groupId>group.id</groupId>
      <artifactId>artifact.id</artifactId>
      <version>artifact.version</version>
   </dependency>
</dependencies>

<build>
   <plugins>
      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-install-plugin</artifactId>
         <version>2.5.2</version>
         <executions>
            <execution>
               <id>install-my-local-dependency</id>
               <phase>clean</phase>
               <goals>
                  <goal>install-file</goal>
               </goals>
               <configuration>
                  <groupId>group.id</groupId>
                  <artifactId>artifact.id</artifactId>
                  <version>artifact.version</version>
                  <file>${project.basedir}/lib/local-dep.jar</file>
                  <packaging>jar</packaging>
                  <generatePom>true</generatePom>
               </configuration>
            </execution>
         </executions>
      </plugin>
   </plugins>
</build>

当我执行mvn clean(或在 IDE 中等效)时,一切都按我的预期运行:

--- maven-clean-plugin:2.5:clean (default-clean) @ MyProject ---

--- maven-install-plugin:2.5.2:install-file (install-...) @ MyProject --- 安装 ${project.basedir}/lib/local-dep.jar 到 ~/.m2/repository /group.id/artifact.id/local-dep.jar

但是,当我mvn clean install改为执行(或在 IDE 中执行它的等效项)时,出现以下错误:

无法在项目 MyProject 上执行目标:无法解析项目 com.example.MyProject:jar:1.0 的依赖项:在中央 ( https: //repo.xml) 中找不到工件 group.id:artifact.id:jar:artifact.version 。 maven.apache.org/maven2 ) -> [帮助 1]

出于某种原因,Maven 安装插件的 install-file 目标要么在这种情况下不运行,要么运行得不够快。为什么?我发现的其他 StackOverflow 答案解释了两个命令之间的差异,但在我看来,它们并没有解释这种特殊差异,因为我的项目没有模块。

即使在构建服务器(例如 Jenkins)和至少一个其他依赖项目上,是否有更好的跨平台方式做同样的事情?

如果有任何帮助,我有以下 Maven 版本:

  • 命令行界面:3.6.0
  • IDE:3.3.9
J Fabian Meier

Maven 首先分析pom.xml然后调用目标/阶段。分析本身很复杂,深度不同,所以我猜clean单独调用不会让Maven分析依赖关系,但是调用clean install会。请注意,POM 的分析仅发生一次,而不是针对每个目标/阶段再次进行。

通常,不能推荐您的方法。通常,您将项目依赖项放入远程 Maven 存储库中,以便可以通过它们进行解析。如果您在公司内部工作,您应该设置一个 Nexus/Artifactory 服务器来处理您的工件。

如果您希望公司以外的人构建工件,则需要找到 Maven 存储库的提供者。我想 github/gitlab 可以在这里帮助你。然后您需要将这些存储库添加到 POM。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

“ mvn clean install”运行测试,但不运行“ mvn clean site”

来自分类Dev

使用mvn clean -e install

来自分类Dev

'mvn clean install':为什么'clean'在'install'之后运行?

来自分类Dev

mvn clean install找不到工件

来自分类Dev

`cp`表现在`mvn clean`之后

来自分类Dev

“ mvn clean install”和“ mvn eclipse:clean eclipse:eclipse”命令有什么区别?

来自分类Dev

您如何在项目内正确执行“ MVN Clean”?

来自分类Dev

`mvn clean package` 正在执行我的项目 main

来自分类Dev

maven -P 选项不适用于 mvn clean install

来自分类Dev

在mvn clean包上未检测到条件类

来自分类Dev

Maven 命令“mvn clean jetty:run”和其他 mvn 命令在 Eclipse 中不起作用

来自分类Dev

运行 mvn clean install 时切换分支会影响 maven 吗?

来自分类Dev

在 GoCD mvn clean install 中 mvn' 未被识别为内部或外部命令,但正常的 cmd 项目构建成功

来自分类Dev

为什么执行“ mvn clean package”以生成Spark失败并显示“某些Enforcer规则失败”?

来自分类Dev

使用Ubuntu 15.10的Maven,出现以下错误:mvn clean install;

来自分类Dev

防止在运行mvn clean install时将war文件复制到.m2 /存储库

来自分类Dev

Jaxb2使用每个mvn clean软件包重新生成类

来自分类Dev

独立于mvn clean程序包运行Maven多模块故障保护任务

来自分类Dev

mvn clean compile无法在以下位置找到Javac编译器:

来自分类Dev

为什么mvn clean install和eclipse在运行的junit测试中会有所不同?

来自分类Dev

尽管 mvn clean install 在命令提示符下工作正常,但在 jenkins 中构建失败

来自分类Dev

mvn clean install 抛出错误 - 文件先前未格式化。请在运行验证之前格式化文件并提交

来自分类Dev

javaee-samples上的mvn clean软件包:在codehaus-snapshots中找不到工件org.javaee7:test-utils:jar:1.0-SNAPSHOT

来自分类Dev

mvn install -U和mvn install有什么区别?

来自分类Dev

mvn install -U和mvn install有什么区别?

来自分类Dev

mvn版本:执行distributionManagement网址

来自分类Dev

Clean code - Dependency injection

来自分类Dev

配置Grunt Clean任务

来自分类Dev

撤消Diskpart clean

Related 相关文章

  1. 1

    “ mvn clean install”运行测试,但不运行“ mvn clean site”

  2. 2

    使用mvn clean -e install

  3. 3

    'mvn clean install':为什么'clean'在'install'之后运行?

  4. 4

    mvn clean install找不到工件

  5. 5

    `cp`表现在`mvn clean`之后

  6. 6

    “ mvn clean install”和“ mvn eclipse:clean eclipse:eclipse”命令有什么区别?

  7. 7

    您如何在项目内正确执行“ MVN Clean”?

  8. 8

    `mvn clean package` 正在执行我的项目 main

  9. 9

    maven -P 选项不适用于 mvn clean install

  10. 10

    在mvn clean包上未检测到条件类

  11. 11

    Maven 命令“mvn clean jetty:run”和其他 mvn 命令在 Eclipse 中不起作用

  12. 12

    运行 mvn clean install 时切换分支会影响 maven 吗?

  13. 13

    在 GoCD mvn clean install 中 mvn' 未被识别为内部或外部命令,但正常的 cmd 项目构建成功

  14. 14

    为什么执行“ mvn clean package”以生成Spark失败并显示“某些Enforcer规则失败”?

  15. 15

    使用Ubuntu 15.10的Maven,出现以下错误:mvn clean install;

  16. 16

    防止在运行mvn clean install时将war文件复制到.m2 /存储库

  17. 17

    Jaxb2使用每个mvn clean软件包重新生成类

  18. 18

    独立于mvn clean程序包运行Maven多模块故障保护任务

  19. 19

    mvn clean compile无法在以下位置找到Javac编译器:

  20. 20

    为什么mvn clean install和eclipse在运行的junit测试中会有所不同?

  21. 21

    尽管 mvn clean install 在命令提示符下工作正常,但在 jenkins 中构建失败

  22. 22

    mvn clean install 抛出错误 - 文件先前未格式化。请在运行验证之前格式化文件并提交

  23. 23

    javaee-samples上的mvn clean软件包:在codehaus-snapshots中找不到工件org.javaee7:test-utils:jar:1.0-SNAPSHOT

  24. 24

    mvn install -U和mvn install有什么区别?

  25. 25

    mvn install -U和mvn install有什么区别?

  26. 26

    mvn版本:执行distributionManagement网址

  27. 27

    Clean code - Dependency injection

  28. 28

    配置Grunt Clean任务

  29. 29

    撤消Diskpart clean

热门标签

归档