有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Maven插件依赖项无法从内部repo解析依赖项

我正在创建父pom。我们正在定义构建->;插件->;依赖关系。 它可以从maven获取依赖项,但无法从我们的内部maven存储库获取依赖项。低于误差

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.2:check (validate) on project parent-pom: Execution validate of goal org.apache.maven.plugins:maven-antrun-plugin:1.2:check failed: Plugin org.apache.maven.plugins:maven-antrun-plugin:1.2 or one of its dependencies could not be resolved: Could not find artifact org.tools:build-tool:jar:1.0 in central (https://repo.maven.apache.org/maven2) -> [Help 1]

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

  1. # 1 楼答案

    这是maven的默认行为

    定义<repository> .... </repository>时,请确保使用内部存储库覆盖<id>central</id>。如果您不这样做,maven仍将联系maven central以解决依赖关系,如果您在VPN后面,则在没有正确的代理设置的情况下无法工作。下面的列表将从您的内部存储库中获取您的所有DEP

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