gpt4 book ai didi

java - 如何将 Maven 外部存储库配置为特定于依赖项

转载 作者:行者123 更新时间:2023-12-02 11:40:05 30 4
gpt4 key购买 nike

在我的 Maven 配置中,我有 6 个存储库。 3 个开放源代码的 Geo Tools Java 框架和 3 个具有加密凭证访问的专有框架。

    <repository>
<id>maven2-repository.dev.java.net</id>
<name>Java.net repository</name>
<url>http://download.java.net/maven/2</url>
</repository>
<repository>
<id>osgeo</id>
<name>Open Source Geospatial Foundation Repository</name>
<url>http://download.osgeo.org/webdav/geotools/</url>
</repository>
<repository>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>boundless</id>
<name>Boundless Maven Repository</name>
<url>http://repo.boundlessgeo.com/main</url>
</repository>

我添加了此处提到的外部存储库:http://docs.geotools.org/latest/userguide/tutorial/quickstart/eclipse.html

我还添加了插件存储库并更新了我的 settings.xml所以两者的存储库都匹配。

    <pluginRepository>
<id>maven2-repository.dev.java.net</id>
<name>Java.net repository</name>
<url>http://download.java.net/maven/2</url>
</pluginRepository>
<pluginRepository>
<id>osgeo</id>
<name>Open Source Geospatial Foundation Repository</name>
<url>http://download.osgeo.org/webdav/geotools/</url>
</pluginRepository>
<pluginRepository>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>boundless</id>
<name>Boundless Maven Repository</name>
<url>http://repo.boundlessgeo.com/main</url>
</pluginRepository>

我什至下载了jar我需要这些地理工具依赖项并将它们放在我的 .m2 中文件夹。

    <dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-shapefile</artifactId>
<version>18.2</version>
</dependency>
<dependency>
<groupId>org.geotools</groupId>
<artifactId>gt-epsg-hsql</artifactId>
<version>18.2</version>
</dependency>

但是,当我尝试运行 mvn clean install -X 时我可以看到我得到了 401 Unauthorized当 Maven 尝试传输 org.geotoolsjar往返于我已配置的专有存储库,但我什至不想尝试 Maven。

如何配置 Maven 以便 org.geotools.*从这 3 个存储库加载:<id>maven2-repository.dev.java.net</id> , <id>osgeo</id> , <id>boundless</id>以及从专有存储库加载?

我听说我可以配置代理,但没有人解释我将如何做到这一点。我尝试将 Geo Tools 所需的 jar 存储在我的专有存储库中,但被告知我不能。我还尝试配置镜像以仅在我的 settings.xml 中将流量定向到这些外部存储库。如下所示,但我看到无法转移 jar 的问题s from/to 仅存在于专有存储库中。

<mirrors>
<mirror>
<id>boundless</id>
<name>Boundless Repository Mirror</name>
<url>http://repo.boundlessgeo.com/main</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>

最佳答案

我不知道这是否可以用maven来完成,但可以用Artifactory虚拟存储库来完成。其他存储库管理工具应该具有类似的概念。基本上,您设置了一个 Artifactory 存储库,并且您的应用程序应该引用该存储库。您可以在 Artifactory 内部配置应从哪些存储库下载哪些 jar。

Consider that the Include Patterns and Exclude Patterns for a repository are as follows: Include Patterns: org/apache/,com/acme/ Exclude Patterns: com/acme/exp-project/** In this case, Artifactory will search the repository for org/apache/maven/parent/1/1.pom and com/acme/project-x/core/1.0/nit-1.0.jar but not for com/acme/exp-project/core/1.1/san-1.1.jar because com/acme/exp-project/** is specified as an Exclude pattern.

https://www.jfrog.com/confluence/display/RTF/Common+Settings#CommonSettings-Package

https://www.jfrog.com/confluence/display/RTF/Virtual+Repositories

关于java - 如何将 Maven 外部存储库配置为特定于依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48649601/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com