无法使用本地存储库快照通过 Maven 编译我的项目

问题描述 投票:0回答:2

我正在尝试在我的 Java 项目上执行命令“mvn clean install”。有些类依赖于我本地存储库中的 SNAPSHOT 项目。

这是我的项目pom中的依赖标签

<dependency>   
  <groupId>my-package</groupId>  
  <artifactId>project-name</artifactId>   
  <version>3.0.0.0000-SNAPSHOT</version>   
  <scope>compile</scope> 
</dependency>

即使我看到我的 maven 本地存储库中有一个名为“project-version”-SNAPSHOT.jar 的 jar,maven 也会在包含对快照 jar 的引用的那些行上给出错误“编译错误”。 我尝试运行命令“mvn -U clean install”但不起作用;我尝试使用 mvn dependency:tree ,它找到了依赖项并以构建成功完成,所以我猜他可以找到该文件夹和文件,但仍然更喜欢使用从我的 nexus 服务器获取的旧版本(不是快照)。

编辑:我无法在我的Nexus服务器上创建版本,我需要在部署之前测试jar,永远不要这样做添加问题

编辑2:我尝试删除关键字“快照”(尝试和错误方法,我知道我不应该这样做),现在它给了我一个与我的问题更相关的错误

Could not resolve dependencies for project project-name:pom:3.0.0.0000-SNAPSHOT: The following artifacts could not be resolved: my-package:project-name-client:jar:3.0.0.0000, my-package:project-name-server:jar:3.0.0.0000: Could not find artifact my-package:project-name-client:jar:3.0.0.0000 in nexus

java maven build compiler-errors snapshot
2个回答
0
投票

我自己发布答案,以防有人遇到同样的问题。显然如果你使用 IntelliJ 只是一个 IDE bug,要解决问题只需右键单击外部 pom 文件 -> Maven -> Reload


0
投票

如果您对“快照”版本有依赖性,请尝试在编译的同时制作应用程序的“快照”版本。它对我有用,我有同样的错误并且无法编译。

<groupId>...</groupId>
<artifactId>project-name</artifactId>
<version>version-SNAPSHOT</version>
....
<dependency>
  <groupId>...</groupId>
  <artifactId>dependency</artifactId>
  <version>dependency-snapshot-version</version>
</dependency>
© www.soinside.com 2019 - 2024. All rights reserved.