Maven Bnd 存储库插件无法从远程工件中获取工件
Maven Bnd Repository Plugin fails to fetch artifact from remote artifactory
我正在尝试使 bnd 工具结构正常工作(从教程 https://bndtools.org/tutorial.html 开始)
在cnf/central.maven[=42=中添加了javax.vecmath(我能想到的最简单的库) ] 文件
javax.vecmath:vecmath:1.5.2
并将其添加到 org.example.impl 中的构建路径,一切都很好解决。
我在远程服务器上的 jFrog artifactory 运行 中有这个库的分支,所以下一步是在 cnf/build.bnd 中定义该存储库添加 (如 https://bnd.bndtools.org/plugins/maven.html)
中所述
-plugin.10.Remote = \
aQute.bnd.repository.maven.provider.MavenBndRepository; \
releaseUrl=https://artifactory.website.com/artifactory/libs-release-local/; \
snapshotUrl=https://artifactory.website.com/artifactory/libs-snapshot-local/; \
index=${.}/release.maven; \
name="Maven Remote"
和 cnf/release.maven
中的适当参考
javax.vecmath:vecmath:2.1.5
将此库添加到构建路径时出现错误“2.1.5 [Could not fetch javax.vecmath:vecmath:2.1.5]”,没有更多信息。
我认为 Maven Central 和我的人工制品之间的唯一区别应该是 .m2/settings.xml 的内容和凭据(根据 https://bnd.bndtools.org/instructions/connection-settings 插件应该首先看那里)。
适用于 eclipse 中的 maven 的配置(当我打开一个以 vecmath 2.1.5 作为依赖项的 maven 项目时,它被毫无问题地拉到 .m2/repository/javax/vecmath/vecmath/2.1.5 一旦到了那里,它就会被 bnd)
很好地解决
<?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>roigonsdnglosgnoisfgnsdjgnlafjksasgnl</password>
<id>central</id>
</server>
<server>
<username>username</username>
<password>roigonsdnglosgnoisfgnsdjgnlafjksasgnl</password>
<id>snapshots</id>
</server>
</servers>
<profiles>
<profile>
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>libs-release</name>
<url>https://artifactory.website.com/artifactory/libs-release</url>
</repository>
<repository>
<snapshots />
<id>snapshots</id>
<name>libs-snapshot</name>
<url>https://artifactory.website.com/artifactory/libs-snapshot</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>libs-release</name>
<url>https://artifactory.website.com/artifactory/libs-release</url>
</pluginRepository>
<pluginRepository>
<snapshots />
<id>snapshots</id>
<name>libs-snapshot</name>
<url>https://artifactory.website.com/artifactory/libs-snapshot</url>
</pluginRepository>
</pluginRepositories>
<id>artifactory</id>
</profile>
</profiles>
<activeProfiles>
<activeProfile>artifactory</activeProfile>
</activeProfiles>
</settings>
由此看来,bnd 似乎没有问题从 Maven 中心获取到本地 m2 存储库并从那里使用它,但无法连接到我的工件。我是否遗漏了一些关键设置或差异?
在 https://groups.google.com/forum/#!forum/bndtools-users 的帮助下最终解决了问题,发现我的配置有两个(三个?)问题。
build.bnd 中存储库定义的正确格式似乎是
-plugin.10.Remote: \
aQute.bnd.repository.maven.provider.MavenBndRepository; \
releaseUrl=https://artifactory.website.com/artifactory/libs-release-local/; \
snapshotUrl=https://artifactory.website.com/artifactory/libs-snapshot-local/; \
index=${.}/release.maven; \
name="Maven Remote"
查看 https://bnd.bndtools.org/instructions/connection-settings bnd 的服务器身份验证配置与 maven 配置不同(0.3.4,出于某种原因我错过了那部分)
<server>
<username>username</username>
<password>roigonsdnglosgnoisfgnsdjgnlafjksasgnl</password>
<id>https://*website.com</id>
</server>
而bnd首先在.bnd中寻找连接设置,如果有none,则在.m2 , 但如果 .bnd 中有 incorrect/insufficient 设置,它不会在 .m2 中查找,即使它包含 correct/sufficient一个。
The default order in which bnd looks for settings is:
`~/.bnd/connection-settings.xml`
`~/.m2/settings.xml`
我正在尝试使 bnd 工具结构正常工作(从教程 https://bndtools.org/tutorial.html 开始)
在cnf/central.maven[=42=中添加了javax.vecmath(我能想到的最简单的库) ] 文件
javax.vecmath:vecmath:1.5.2
并将其添加到 org.example.impl 中的构建路径,一切都很好解决。
我在远程服务器上的 jFrog artifactory 运行 中有这个库的分支,所以下一步是在 cnf/build.bnd 中定义该存储库添加 (如 https://bnd.bndtools.org/plugins/maven.html)
中所述-plugin.10.Remote = \
aQute.bnd.repository.maven.provider.MavenBndRepository; \
releaseUrl=https://artifactory.website.com/artifactory/libs-release-local/; \
snapshotUrl=https://artifactory.website.com/artifactory/libs-snapshot-local/; \
index=${.}/release.maven; \
name="Maven Remote"
和 cnf/release.maven
中的适当参考javax.vecmath:vecmath:2.1.5
将此库添加到构建路径时出现错误“2.1.5 [Could not fetch javax.vecmath:vecmath:2.1.5]”,没有更多信息。
我认为 Maven Central 和我的人工制品之间的唯一区别应该是 .m2/settings.xml 的内容和凭据(根据 https://bnd.bndtools.org/instructions/connection-settings 插件应该首先看那里)。
适用于 eclipse 中的 maven 的配置(当我打开一个以 vecmath 2.1.5 作为依赖项的 maven 项目时,它被毫无问题地拉到 .m2/repository/javax/vecmath/vecmath/2.1.5 一旦到了那里,它就会被 bnd)
很好地解决<?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>roigonsdnglosgnoisfgnsdjgnlafjksasgnl</password>
<id>central</id>
</server>
<server>
<username>username</username>
<password>roigonsdnglosgnoisfgnsdjgnlafjksasgnl</password>
<id>snapshots</id>
</server>
</servers>
<profiles>
<profile>
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>libs-release</name>
<url>https://artifactory.website.com/artifactory/libs-release</url>
</repository>
<repository>
<snapshots />
<id>snapshots</id>
<name>libs-snapshot</name>
<url>https://artifactory.website.com/artifactory/libs-snapshot</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>libs-release</name>
<url>https://artifactory.website.com/artifactory/libs-release</url>
</pluginRepository>
<pluginRepository>
<snapshots />
<id>snapshots</id>
<name>libs-snapshot</name>
<url>https://artifactory.website.com/artifactory/libs-snapshot</url>
</pluginRepository>
</pluginRepositories>
<id>artifactory</id>
</profile>
</profiles>
<activeProfiles>
<activeProfile>artifactory</activeProfile>
</activeProfiles>
</settings>
由此看来,bnd 似乎没有问题从 Maven 中心获取到本地 m2 存储库并从那里使用它,但无法连接到我的工件。我是否遗漏了一些关键设置或差异?
在 https://groups.google.com/forum/#!forum/bndtools-users 的帮助下最终解决了问题,发现我的配置有两个(三个?)问题。
build.bnd 中存储库定义的正确格式似乎是
-plugin.10.Remote: \
aQute.bnd.repository.maven.provider.MavenBndRepository; \
releaseUrl=https://artifactory.website.com/artifactory/libs-release-local/; \
snapshotUrl=https://artifactory.website.com/artifactory/libs-snapshot-local/; \
index=${.}/release.maven; \
name="Maven Remote"
查看 https://bnd.bndtools.org/instructions/connection-settings bnd 的服务器身份验证配置与 maven 配置不同(0.3.4,出于某种原因我错过了那部分)
<server>
<username>username</username>
<password>roigonsdnglosgnoisfgnsdjgnlafjksasgnl</password>
<id>https://*website.com</id>
</server>
而bnd首先在.bnd中寻找连接设置,如果有none,则在.m2 , 但如果 .bnd 中有 incorrect/insufficient 设置,它不会在 .m2 中查找,即使它包含 correct/sufficient一个。
The default order in which bnd looks for settings is:
`~/.bnd/connection-settings.xml`
`~/.m2/settings.xml`