Maven 插件依赖项无法解决内部存储库中的依赖项



我正在创建parent-pom。在这里,我们定义了build->plugin->依赖项。它可以从maven中获取依赖项,但不能从maven内部存储库中获取依赖项。低于错误

[ERROR]执行目标失败Org.apache.maven.plugins:maven- anrun -plugin:1.2:check (validate) on项目父-pom:目标的执行验证org.apache.maven.plugins:maven- anrun - Plugin:1.2:check failed: Pluginapache.maven.plugins:maven- anrun -plugin:1.2或其中一个无法解析依赖项:无法找到工件Org.tools:build-tool:jar:1.0 in central(https://repo.maven.apache.org/maven2)→[帮助1]

它试图从https://repo.maven.apache.org/maven2而不是我们的内部Maven存储库中拉依赖项。我已经配置了存储库和dependencyManagement,它仍然试图从https://repo.maven.apache.org/maven2获取,而不是去我们的内部存储库。

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.global</groupId>
<artifactId>parent-pom</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>

<repositories>
<repository>
<id>archiva.global</id>
<name>Internal Release Repository</name>
<url>https://archiva.global.com/repository/internal</url>
</repository>
<repository>
<id>archiva.snapshots</id>
<name>Internal Snapshots Repository</name>
<url>https://archiva.global.com/repository/snapshots</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>archiva.internal</id>
<name>Internal Release Repository</name>
<url>https://archiva.global.com/repository/internal</url>
</repository>
<snapshotRepository>
<id>archiva.snapshots</id>
<name>Internal Snapshots Repository</name>
<url>https://archiva.global.com/repository/snapshots</url>
</snapshotRepository>
</distributionManagement>
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.2</version>
...
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.7.1</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant-launcher</artifactId>
<version>1.7.1</version>
</dependency>
<dependency>
<groupId>org.tools</groupId>
<artifactId>build-tool</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
...
</project>

我错过了什么吗?只有构建插件依赖项不解析,因为项目依赖项是从我们的内部存储库中解析的。

这是maven的默认行为。

定义<repository> .... </repository>时,请确保使用内部存储库覆盖<id>central</id>。如果您不这样做,maven仍然会联系maven central来解决依赖关系,如果您在VPN后面,没有适当的代理设置,maven将无法工作。下面的清单将从内部存储库中获取所有的深度。

<repositories>
<repository>
<id>central</id>
<name>Internal Release Repository</name>
<url>https://archiva.global.com/repository/internal</url>
</repository>
<repository>
<id>archiva.snapshots</id>
<name>Internal Snapshots Repository</name>
<url>https://archiva.global.com/repository/snapshots</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>

用于从内部存储库下载插件

<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Central Internal Repo</name>
<url>https://archiva.global.com/repository/internal</url>
<layout>default</layout>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<updatePolicy>never</updatePolicy>
</releases>
</pluginRepository>

最新更新