Maven 插件依赖项无法解析来自内部存储库的依赖项

时间:2021-07-30 09:13:16

标签: java maven

我正在创建 parent-pom。在那里我们定义了 build->plugin->dependencies。 它可以从 Maven 获取依赖项,但无法从我们的内部 Maven 存储库获取依赖项。低于错误

<块引用>

[ERROR] 无法执行目标 org.apache.maven.plugins:maven-antrun-plugin:1.2:check (validate) on 项目 parent-pom:目标的执行验证 org.apache.maven.plugins:maven-antrun-plugin:1.2:check failed: Plugin org.apache.maven.plugins:maven-antrun-plugin:1.2 或其中之一 无法解析依赖项:找不到工件 org.tools:build-tool:jar:1.0 在中央 (https://repo.maven.apache.org/maven2) -> [帮助 1]

它试图从 https://repo.maven.apache.org/maven2 而不是我们的内部 Maven 存储库中提取依赖项。我已经配置了存储库和依赖项管理,它仍然试图从 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>

有什么我错过的吗?只有构建插件依赖没有得到解决,因为项目依赖正在从我们的内部存储库中得到解决。

1 个答案:

答案 0 :(得分:2)

这是 maven 的默认行为。

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

<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>