我正在尝试在我的 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
我自己发布答案,以防有人遇到同样的问题。显然如果你使用 IntelliJ 只是一个 IDE bug,要解决问题只需右键单击外部 pom 文件 -> Maven -> Reload
如果您对“快照”版本有依赖性,请尝试在编译的同时制作应用程序的“快照”版本。它对我有用,我有同样的错误并且无法编译。
<groupId>...</groupId>
<artifactId>project-name</artifactId>
<version>version-SNAPSHOT</version>
....
<dependency>
<groupId>...</groupId>
<artifactId>dependency</artifactId>
<version>dependency-snapshot-version</version>
</dependency>