[英]Maven plugin dependencies couldn't resolve dependency from internal repo
我正在創建父pom。 在那里我們定義了 build->plugin->dependencies。 它可以從 Maven 獲取依賴項,但無法從我們的內部 Maven 存儲庫獲取依賴項,出現以下錯誤
[錯誤] 無法執行目標 org.apache.maven.plugins:maven-antrun-plugin:1.2:check (validate) on project 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>
有什么我錯過的嗎? 僅構建插件依賴項未解決,因為項目依賴項正在從我們的內部存儲庫中解決。
這是 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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.