我有两个私人JFrog存储库设置。一个存储库处理发布,另一个处理快照。下面是我如何在我的设置中定义它的。xml文件。
<settings>
<activeProfiles>
<activeProfile>default</activeProfile>
</activeProfiles>
<servers>
<server>
<id>central</id>
<username>private-repo-username</username>
<password>private-repo-password</password>
</server>
<server>
<id>snapshots</id>
<username>private-repo-username</username>
<password>private-repo-password</password>
</server>
</servers>
<profiles>
<profile>
<id>default</id>
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>a0d2olsx0t222-artifactory-primary-0-releases</name>
<url>https://my-private-repo.jfrog.io/artifactory/libs-release</url>
</repository>
<repository>
<id>snapshots</id>
<name>a0d2olsx0t222-artifactory-primary-0-snapshots</name>
<url>https://my-private-repo.jfrog.io/artifactory/libs-snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
</settings>
我的多模块maven项目中的多个内部依赖项都收到了这个错误:
[ERROR] Failed to execute goal on project platform-utils: Could not resolve dependencies for project
design.colspalinva:platform-utils:jar:2.2.1-SNAPSHOT: The following artifacts could not be resolved:
com.maxmind.geoip2:geoip2:jar:2.12.0, org.apache.ant:ant:jar:1.10.5: Could not find artifact
com.maxmind.geoip2:geoip2:jar:2.12.0 in central (https://my-private-repo.jfrog.io/artifactory/libs-
release) -> [Help 1]
从外观上看,Maven似乎并没有试图联系官方的Maven Central repo以获取这些依赖项,而是在我的私有存储库上失败了。我的印象是,如果私有存储库不包含特定工件,它将尝试联系Maven Central。
从Maven Central下载我的Spring依赖项没有问题。
Maven设置。您共享的xml配置似乎还可以。您正在覆盖Maven的内置中央和快照存储库,这是确保Maven在默认情况下将请求发送到Artifictory的正确方法<正如另一个答案中所建议的那样,添加镜像任意设置意味着除了覆盖内置的Maven存储库外,您还可以使用镜像任意设置通过Artifictory将所有请求重定向到Maven存储库,包括插件和第三方依赖项的POM中定义的请求。
根据您共享的日志,Maven确实试图通过artiFactory-https://my-private-repo.jfrog.io/artifactory/libs-release解决工件。
这个问题似乎与artiFactory中特定工件的解析有关。
我假设libs-释放是一个虚拟的Maven存储库,它至少包含一个指向Jcenter或Maven Central的远程Maven存储库(如果不是,请从查看Maven存储库开始)。
要调试问题:
(1) 尝试使用cURL或web浏览器直接从Artifactory解析工件,例如:
curl -Uuser:pass https://my-private-repo.jfrog.io/artifactory/libs-release/com/maxmind/geoip2/geoip2/2.12.0/geoip2-2.12.0.jar
(2) 如果您设法解决了工件,这意味着工件已正确配置,Maven应该能够解决。如果没有,请尝试查找执行跟踪的原因,例如:
curl -Uuser:pass https://my-private-repo.jfrog.io/artifactory/libs-release/com/maxmind/geoip2/geoip2/2.12.0/geoip2-2.12.0.jar?trace
如果您想将对central的所有访问从Maven重定向到您自己的存储库管理器,则必须配置设置。xml如下:
<! language:language-xml ->
<?xml version="1.0" encoding="UTF-8"?>
<settings
xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
https://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://IP:PORT/repository/repo</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
问题内容: 我公司的政策不支持自动下载的工件(必须经过批准),因此,要使用Maven,我需要禁用对Maven中央存储库的访问。 换句话说,我不希望Maven尝试从Central下载任何内容。 我知道如何配置本地存储库(是否联网),我的想法是使用“受祝福的”计算机来更新本地存储库。 PS:我可以在代理/网络级别阻止请求,但是我在问如何使用Maven的配置来完成请求。 UPDATE 我终于想出了怎么做
由于“需要HTTPS”错误,我最近在构建项目时遇到了问题。这个问题通过如下所述修改我的pom.xml得到了解决,添加了以下内容: 然而,为我的每个项目更新每个pom.xml是一件麻烦的事。 我尝试将相同的代码片段添加到我的settings.xml,但没有成功。 我知道更新版本的Maven解决了这个问题。然而,由于工作限制,我无法更新我的环境。 我目前已经安装了Java8和Maven,由Netbea
有没有办法使用java或任何其他语言从maven存储库下载jar文件? 在Maven项目中,当我添加依赖项时,如果本地系统上不存在jar文件,它通常会从远程存储库下载jar文件。 有没有办法做到这一点,而不用像在库中那样使用Maven,或者构造一个URL,然后获取jar?
我们在JFrog艺术工厂中设置了虚拟和远程存储库。最近,我们在从中央提取包时看到了问题。例如,艺术工厂的最新版本是2.3.1:https://xxx.xxx.xx/artifactory/mvn_central/de/codecentric/spring-boot-admin-starter-server/最新版本是2.4.1:https://mvnrepository.com/artifact/
我有以下问题:出于测试目的,我使用FTP服务器作为存储库。部署(上传)不同的工件都可以正常工作。一旦我需要解析和下载之前上传到该存储库的工件依赖项,我就会收到以下警告: [WARN]myrepo(ftp://ftp.myftpadress.fr/dev/M2Repo/,发布快照)被忽略(仅支持S3、HTTP/S和FILE)。 我无法使用HTTP协议访问存储库。那么货车是否支持FTP协议来下载所需的
我正在尝试在我的笔记本电脑上创建一个swarm设置。我正在笔记本电脑上运行swarm守护进程,并作为docker节点运行2个Ubuntu14.04VM。在其中一个节点上,我可以运行swarm,并且可以连接到swarm守护进程。我可以用docker信息列出节点,并在其上生成一个容器。但是当我尝试在另一个VM节点上拉swarm映像时,我得到以下错误: 更新:这是一个不同的东西。我是在家里试的。今天早上