Java 即使在构建maven本地存储库的过程中在maven本地存储库中创建了依赖项组件的jar,也要查找自定义远程存储库
我在Maven项目中有一个依赖项和一个依赖组件 我已经使用Java 即使在构建maven本地存储库的过程中在maven本地存储库中创建了依赖项组件的jar,也要查找自定义远程存储库,java,maven,spring-boot,maven-dependency,Java,Maven,Spring Boot,Maven Dependency,我在Maven项目中有一个依赖项和一个依赖组件 我已经使用clean install- [INFO] Installing /Users/sandeepan.nath/Desktop/codebase/path/to/component1/target/project-component-1-1.0.1-SNAPSHOT.jar to /Users/sandeepan.nath/.m2/repository/path/to/project-component-1/1.0.1-SNAPSHOT/p
clean install
-
[INFO] Installing /Users/sandeepan.nath/Desktop/codebase/path/to/component1/target/project-component-1-1.0.1-SNAPSHOT.jar to /Users/sandeepan.nath/.m2/repository/path/to/project-component-1/1.0.1-SNAPSHOT/project-component-1-1.0.1-SNAPSHOT.jar
[DEBUG] Writing tracking file /Users/sandeepan.nath/.m2/repository/path/to/project-component-1/1.0.1-SNAPSHOT/_remote.repositories
[INFO] Installing /Users/sandeepan.nath/Desktop/codebase/path/to/project-component-1/pom.xml to /Users/sandeepan.nath/.m2/repository/com/path/to/project-component-1/1.0.1-SNAPSHOT/project-component-1-1.0.1-SNAPSHOT.pom
[DEBUG] Writing tracking file /Users/sandeepan.nath/.m2/repository/path/to-project-component-1/1.0.1-SNAPSHOT/_remote.repositories
[DEBUG] Installing com.project:project-component-1:1.0.1-SNAPSHOT/maven-metadata.xml to /Users/sandeepan.nath/.m2/repository/path/to/project-component-1/1.0.1-SNAPSHOT/maven-metadata-local.xml
[DEBUG] Installing com.project:project-component-1/maven-metadata.xml to /Users/sandeepan.nath/.m2/repository/path/to/project-component-1/maven-metadata-local.xml
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------
我还确认存储库存在于路径-/Users/sandepan.nath/.m2/repository/path/to/project-component-1/1.0.1-SNAPSHOT中/
以下是生成的文件的权限-
SandeepanNath:1.0.1-SNAPSHOT sandeepan.nath$ ls -l
total 312
-rw-r--r-- 1 sandeepan.nath IDC\Domain Users 264 Jul 26 21:24 _remote.repositories
-rw-r--r-- 1 sandeepan.nath IDC\Domain Users 107794 Jul 26 21:24 project-component-1-1.0.1-SNAPSHOT.jar
-rw-r--r-- 1 sandeepan.nath IDC\Domain Users 428 Jul 26 19:19 project-component-1-1.0.1-SNAPSHOT.jar.lastUpdated
-rw-r--r-- 1 sandeepan.nath IDC\Domain Users 6733 Jul 26 21:01 project-component-1-1.0.1-SNAPSHOT.pom
-rw-r--r-- 1 sandeepan.nath IDC\Domain Users 428 Jul 26 19:19 project-component-1-1.0.1-SNAPSHOT.pom.lastUpdated
-rw-r--r-- 1 sandeepan.nath IDC\Domain Users 739 Jul 26 21:24 maven-metadata-local.xml
-rw-r--r-- 1 sandeepan.nath IDC\Domain Users 342 Jul 26 21:26 resolver-status.properties
注意-我不确定为什么jar不在组件的目标目录中。据我所知,依赖组件的jar将首先在项目的目标目录中查找,然后在maven本地存储库中查找,最后在远程存储库中查找
现在,当我试图在依赖组件上运行clean install
时,出现以下错误-
从属项目是否正在尝试引用从属项目的.m2或/target文件夹
[ERROR] Failed to execute goal on project project-component-2: Could not resolve dependencies for project project-component-2:jar:1.0.1-SNAPSHOT: Failed to collect dependencies at project-component-1:jar:1.0.1-SNAPSHOT: Failed to read artifact descriptor for project-component-1:jar:1.0.1-SNAPSHOT: Could not find artifact project:path:pom:1.0.1-SNAPSHOT in nexus (https://project-repository.com/repository/maven-public/) -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal on project project-component-2: Could not resolve dependencies for project project-component-2:jar:1.0.1-SNAPSHOT: Failed to collect dependencies at project-component-1:jar:1.0.1-SNAPSHOT
at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies(LifecycleDependencyResolver.java:269)
此存储库url在maven settings.xml中定义为-
<localRepository>/Users/sandeepan.nath/.m2/repository</localRepository>
<servers>
<server>
<id>repo-id</id>
<username>cred</username>
<password>cred</password>
</server>
<server>
<id>repo-id-2</id>
<username>cred</username>
<password>cred</password>
</server>
<server>
<id>repo-id-3</id>
<username>cred</username>
<password>cred</password>
</server>
<server>
<id>repo-id-4</id>
<username>cred</username>
<password>cred</password>
</server>
<server>
<id>repo-id-5</id>
<username>cred</username>
<password>cred</password>
</server>
</servers>
<mirrors>
<mirror>
<id>repo</id>
<mirrorOf>repo-id-5</mirrorOf>
<url>https://project-repository.com/repository/maven-snapshots</url>
</mirror>
<mirror>
<id>repo-id-4</id>
<mirrorOf>nexus-snapshots-prepaid</mirrorOf>
<url>https://project-repository.com/repository/maven-snapshots</url>
</mirror>
<mirror>
<id>repo-id-1</id>
<mirrorOf>*</mirrorOf>
<url>https://project-repository.com/repository/maven-public/</url>
</mirror>
</mirrors>
/Users/sandepan.nath/.m2/repository
回购id
信誉
信誉
repo-id-2
信誉
信誉
repo-id-3
信誉
信誉
repo-id-4
信誉
信誉
repo-id-5
信誉
信誉
回购
repo-id-5
https://project-repository.com/repository/maven-snapshots
repo-id-4
nexus快照预付费
https://project-repository.com/repository/maven-snapshots
repo-id-1
*
https://project-repository.com/repository/maven-public/
注意-如果我在替换项目的实际名称/路径时出错,请忽略
更新
Maven版本3.3.9。
Java版本1.8
更新2
以下是依赖项组件pom中的某些部分(可能相关)——
<parent>
<groupId>com.project</groupId>
<artifactId>project-base</artifactId>
<version>1.0.1-SNAPSHOT</version>
<relativePath>../../</relativePath>
</parent>
<artifactId>project-component-1</artifactId>
<packaging>jar</packaging>
<name>project-component-1</name>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.project.dependencies</groupId>
<artifactId>dependency-of-project-component-1</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
com.project
我还尝试了mvn clean install-U
,但结果相同
更新4
根据这项评论——
我猜您的本地存储库有问题。删除
目录
/Users/sandepan.nath/.m2/repository/path/to/project-component-1/1.0.1-SNAPSHOT/
然后再次构建第一个工件
也试过了,但还是一样的错误。删除1.0.1-SNAPSHOT目录并构建第一个工件时,该目录再次出现,只有.jar文件。我想,早些时候.last更新的文件也在那里。但是,尝试构建第二个工件时的错误保持不变 您需要使用-U
调用clean install
,因为您的本地存储库中有last updated
文件。这些缓存表明工件不存在 我已经在执行清洁安装
,并检查了更新快照。不确定这是否在做必要的事情。无论如何,我也尝试了-U,但仍然得到相同的错误。-U
应该尝试从远程存储库下载吗?我不确定这些项目组件JAR是否会出现在远程存储库中。我希望这些文件可以在我的项目目标文件夹中创建,但这些文件正在本地存储库中创建。那么我想您的本地存储库中可能有问题。删除目录/Users/sandeepan.nath/.m2/repository/path/to/project-component-1/1.0.1-SNAPSHOT/
,然后再次构建第一个工件。也尝试了,但仍然存在相同的错误。删除1.0.1-SNAPSHOT目录并构建第一个工件时,该目录再次出现,只有.jar文件。我想,早些时候.last更新的文件也在那里。但是,尝试构建第二个工件时的错误保持不变。在尝试构建第二个工件后,是否再次获得相同的上次更新的文件?