Chr*_*ris 4 java maven-2 artifactory maven-3 maven
我是Apache Archiva的资深人士,他最近转投Artifactory Pro.我一直试图在Artifactory中复制一个我在Archiva中实现虚拟私有存储库的设置.最终结果应该是不同的团队可以访问他们自己团队的工件,远程存储库,默认本地存储库和公司范围的存储库.
但是,每当我配置我的Maven settings.xml以使用我的私有虚拟存储库时,我只能下载一些依赖项,这些依赖项可以从Maven Central获取和从中提取.如果我使用Artifactory的默认settings.xml(libs-release,libs-snapshot,plugins-release,plugins-snapshot和no virtual repository),那么我可以下载Maven Central上可用的所有依赖项以及我的项目所需的依赖项.
我在Windows服务器2012虚拟服务器上运行他们提供的Tomcat上的Artifactory v4.4.2.我没有在代理后面跑.我对Archiva没有这样的问题.
关于我的私有虚拟存储库设置,我有一个名为"test"的虚拟存储库,它是一个"通用"软件包类型.该存储库包含以下存储库:
列出的前5个repos是提供Artifactory的默认虚拟存储库repos.列出的最后4个回购是本地回购,它们是通用包类型.
我想我应该用镜子.
这是我正在使用的一个示例settings.xml(我的用户名和密码将填充在我保存到我的Maven conf文件夹的生成的settings.xml中):
<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<servers>
<server>
<username>${security.getCurrentUsername()}</username>
<password>${security.getEscapedEncryptedPassword()!"*** Insert encrypted password here ***"}</password>
<id>central</id>
</server>
<server>
<username>${security.getCurrentUsername()}</username>
<password>${security.getEscapedEncryptedPassword()!"*** Insert encrypted password here ***"}</password>
<id>snapshots</id>
</server>
</servers>
<mirrors>
<mirror>
<mirrorOf>*</mirrorOf>
<name>test</name>
<url>http://localhost:8082/artifactory/test</url>
<id>test</id>
</mirror>
</mirrors>
<profiles>
<profile>
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>libs-release</name>
<url>http://localhost:8082/artifactory/libs-release</url>
</repository>
<repository>
<snapshots />
<id>snapshots</id>
<name>libs-snapshot</name>
<url>http://localhost:8082/artifactory/libs-snapshot</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>plugins-release</name>
<url>http://localhost:8082/artifactory/plugins-release</url>
</pluginRepository>
<pluginRepository>
<snapshots />
<id>snapshots</id>
<name>plugins-snapshot</name>
<url>http://localhost:8082/artifactory/plugins-snapshot</url>
</pluginRepository>
</pluginRepositories>
<id>artifactory</id>
</profile>
</profiles>
<activeProfiles>
<activeProfile>artifactory</activeProfile>
</activeProfiles>
</settings>
Run Code Online (Sandbox Code Playgroud)
我无法从Maven Central通过我的虚拟存储库提取的工件示例是poi-ooxml-schemas-3.10-FINAL.jar或许多Apache Maven插件.一旦删除镜像部分,我就可以从Maven Central下载所有依赖项.这对我来说毫无意义.我的虚拟存储库配置为包含remote-repos虚拟存储库,因此应该能够从Maven Central中提取所有内容.
我究竟做错了什么?
好的,我自己找出了部分答案,并通过 JFrog 支持人员的帮助找出了另一部分答案。
这是我发现的第一组问题:
这些问题对我来说似乎是错误。
所以,我最终定义了一个虚拟存储库(在下面的配置中命名为 test-maven)和两个本地存储库,它们都是 Maven 类型。这两个本地存储库包含在虚拟存储库中。
我想出了一个有效的 settings.xml,但它使用的是镜像,JFrog 支持告诉我这不是最佳实践。牢记这一建议,这里是对我有用的最终 settings.xml:
<?xml version="1.0" encoding="UTF-8"?>
<settings xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns="http://maven.apache.org/SETTINGS/1.1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<servers>
<server>
<username>USERNAME</username>
<password>PASSWORD</password>
<id>test-maven</id>
</server>
</servers>
<profiles>
<profile>
<repositories>
<repository>
<snapshots />
<id>test-maven</id>
<name>test-maven</name>
<url>http://localhost:8082/artifactory/test-maven</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<snapshots />
<id>test-maven</id>
<name>test-maven</name>
<url>http://localhost:8082/artifactory/test-maven</url>
</pluginRepository>
</pluginRepositories>
<id>artifactory</id>
</profile>
</profiles>
<activeProfiles>
<activeProfile>artifactory</activeProfile>
</activeProfiles>
</settings>
Run Code Online (Sandbox Code Playgroud)
使用此配置,我验证了我可以下载发布到 Maven Central 的所有工件、进一步的远程存储库、来自本地快照 Maven 存储库的快照以及来自本地快照 Maven 存储库的发布。此设置允许我利用每个开发团队的私有存储库。
| 归档时间: |
|
| 查看次数: |
16735 次 |
| 最近记录: |