Java maven settings.xml中的存储库与插件存储库
我的~/.m2/文件夹中有以下settings.xml文件:Java maven settings.xml中的存储库与插件存储库,java,maven,nexus,Java,Maven,Nexus,我的~/.m2/文件夹中有以下settings.xml文件: <settings> <profiles> <profile> <id>my-repositories</id> <repositories> <repository> <id>thirdparty
<settings>
<profiles>
<profile>
<id>my-repositories</id>
<repositories>
<repository>
<id>thirdparty-repository</id>
<name>Thirdparty repository</name>
<url>https://mynexus/repository/thirdparty/</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>thirdparty-plugin-repository</id>
<name>Thirdparty plugin repository</name>
<url>https://mynexus/repository/thirdparty/</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>my-repositories</activeProfile>
</activeProfiles>
</settings>
现在,如果我重新启用它并删除另一个:thirdparty plugin repository
我现在得到这个错误:
Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.5: Could not transfer artifact org.apache.maven.plugins:maven-clean-plugin:pom:2.5 from/to central (https://repo.maven.apache.org/maven2): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
只有当我同时启用它们时,它才能工作
为什么我需要指向同一nexus存储库的
存储库
和插件存储库
?我有一个这样的pb,idk如果有帮助的话,但是通过POM.xml中的代码,我的nexus pb得到了解决
<distributionManagement>
<repository>
<id>nexus</id>
<name>releases</name>
<url>https://mynexus/repository/thirdparty/</url>
</repository>
<snapshotRepository>
<id>nexus</id>
<name>Snapshots</name>
<url>https://mynexus/repository/thirdparty/</url>
</snapshotRepository>
</distributionManagement>
关系
释放
https://mynexus/repository/thirdparty/
关系
快照
https://mynexus/repository/thirdparty/
及
关系
公开的
https://mynexus/repository/thirdparty/
真的
真的
希望对您有所帮助在Nexus中定义了一个公共组,该组应包含所有需要的存储库,无需在您自己的pom或settings.xml文件中进行配置。应仅配置Nexus的公共组 你唯一需要做的就是用你自己的位置在镜像中更改url
<settings>
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8081/repository/maven-public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<!--Enable snapshots for the built in central repo to direct -->
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
关系
*
http://localhost:8081/repository/maven-公开的/
关系
中心的
http://central
真的
真的
中心的
http://central
真的
真的
关系
假设您定义了一个具有某些依赖项的插件。将在所有
定义中搜索这些依赖项。大概是这样的:
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>${liquibase.version}</version>
<dependencies>
<dependency>
<groupId>io.herd.common</groupId>
<artifactId>common-herd</artifactId>
<version>${common.version}</version>
</dependency>
</dependencies>
</plugin>
org.liquibase
liquibase maven插件
${liquibase.version}
普通的
普通牛群
${common.version}
即使您定义了一个
,其中包含common herd工件,Maven也不会下载它,除非您还有一个
包含它。当然,普通牧群工件不能出现在Maven中央存储库中
几个月前我遇到了这个问题,Maven只是在我添加了一个
之后才下载了特定的插件依赖项。您似乎遇到了证书问题:找不到请求的targeYes的有效证书路径,但为什么在启用这两个repo时我没有得到这个错误?因为依赖项无法基于关于上述错误。为什么我需要添加镜像?我不能只添加我需要的存储库,反正它们在nexus中。
<settings>
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8081/repository/maven-public/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<!--Enable snapshots for the built in central repo to direct -->
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>${liquibase.version}</version>
<dependencies>
<dependency>
<groupId>io.herd.common</groupId>
<artifactId>common-herd</artifactId>
<version>${common.version}</version>
</dependency>
</dependencies>
</plugin>