我需要一个设置才能使用以下任一方式编译 Java Maven 项目:
- 企业 Maven 存储库(内网 Artifactory 代理 Maven Central 等)
- 公共 Maven 存储库(Central、ICM、io.confluent 等)
项目 POM 代码已经引用了内部公司存储库:
<repositories>
<repository>
<id>artifactory-virtual</id>
<name>My Artifactory Repository to download</name>
<url>https://artifactory.corporation.com/maven</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
但是要使用这个存储库需要一个我想避免的 VPN 连接。
我正在尝试使用此 Maven 文档设置存储库镜像。
因此,我~/.m2/settings.xml
在以下配置中进行配置:
<?xml version="1.0" encoding="UTF-8"?>
<settings>
...
<mirrors>
<mirror>
<id>icm-mirror</id>
<url>http://maven.icm.edu.pl/artifactory/repo/</url>
<mirrorOf>*,!central</mirrorOf>
</mirror>
</mirrors>
...
</settings>
但仅提供一个镜像(对于除中央以外的所有存储库),该项目仍在尝试从公司存储库下载(我没有提供任何):
[ERROR] Failed to execute goal on project ibis-customer-management:
Could not resolve dependencies for project com.example.project:myproject:jar:3.7.1-SNAPSHOT:
Failed to collect dependencies at com.oracle.jdbc:ojdbc8:jar:18.3.0.0:
Failed to read artifact descriptor for com.oracle.jdbc:ojdbc8:jar:18.3.0.0: Could not transfer artifact com.oracle.jdbc:ojdbc8:pom:18.3.0.0 from/to artifactory-virtual (https://artifactory.corporation.com/maven):
Transfer failed for https://artifactory.corporation.com/maven/com/oracle/jdbc/ojdbc8/18.3.0.0/ojdbc8-18.3.0.0.pom:
Connect to artifactory.corporation.com [artifactory.corporation.com/1.2.3.4] failed:
Operation timed out -> [Help 1]
即使我为 ICM 存储库创建具有显式条目的活动配置文件,该错误也未修复:
<settings>
...
<mirrors>
<mirror>
<id>icm-mirror</id>
<url>http://maven.icm.edu.pl/artifactory/repo/</url>
<mirrorOf>*,!central</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<id>not-corpnet</id>
<repositories>
<repository>
<id>icm</id>
<name>ICM Repository</name>
<url>http://maven.icm.edu.pl/artifactory/repo/</url>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>not-corpnet</activeProfile>
</activeProfiles>
...
</settings>
如果您认为 my 中可能还有其他内容settings.xml
,那么上面的内容几乎是完整的(没有点,并且具有正确的 XML 命名空间。
当我运行时,配置文件也处于活动状态且可见mvn
[INFO] --- maven-help-plugin:3.2.0:active-profiles (default-cli) @ myproject ---
[INFO]
Active Profiles for Project 'com.example.project:myproject:pom:3.7.1-SNAPSHOT':
The following profiles are active:
- not-corpnet (source: external)
当我不在公司网络/VPN 中时,如何使我的项目(已经在其 POM 中的公司存储库中)从公共存储库中下载工件?