Maven Managed Jars 未下载
Maven Managed Jars not downloaded
我遇到一个问题,我在 POM.xml 文件中指定的 JAR 文件没有下载/导入到我的项目中。我知道这是由于我公司内部实施的网络限制造成的。
以下是我目前需要的 JAR 文件的一些示例:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.enterprisedt</groupId>
<artifactId>edtFTPj</artifactId>
<version>1.5.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.8.0</version>
<scope>compile</scope>
</dependency>
我想与我的网络管理员一起了解并纠正现有的限制,这些限制阻止了这些(和其他)Jar 文件(依赖项)的自动 Maven 管理。
我的问题是...如何向我的管理员指定这些依赖项的下载位置?是否有一个 URL 是使用我的依赖描述符构建的,试图联系它以尝试从中获取 Jar 文件?
为什么我可以使用浏览器下载 Jar 文件,而 Maven 托管依赖项下载(通过我的 IDE、SpringSource 工具套件)似乎被阻止了?
我对 Maven 环境了解不够,无法帮助我的网络管理员。
谢谢!
2016 年 8 月 23 日编辑:
我可以使用 settings.xml 文件告诉我的 IDE 我们的代理服务器。我仍然无法解决我的依赖关系。我认为我的等式中仍然缺少的是,我需要为我的代理服务器提供 'Certificate',以便它为我提供 'open the doors'。我们在网络上安装了此功能,因此我时不时需要 'sign in' 到我们的网络以允许浏览器工作。当我登录时,我正在做的是获取有效证书。当我在 mac 工作站上查找此证书时,我可以看到它在我的 'Keychain Access' 中进行管理。
所以问题来了...有没有办法告诉 IDE 证书在哪里以及如何使用它?
非常感谢您的帮助!
斯科特
因为您可能在代理后面,并且浏览器可能配置为在代理后面工作,而 Maven 没有。
为了定义代理,您必须在 $M2_HOME/conf/settings.xml:
中配置代理
通常是这样的:
<proxies>
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<username>mkyong</username>
<password>password</password>
<host>proxy.host.com</host>
<port>1234</port>
<nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>
现在关于存储库。 Maven 默认使用名为 repo1 的远程存储库,但有时您会想要定义自己的存储库(同样,通常这在 settings.xml 文件中完成)
通常组织维护具有一些 UI 的代理并为第三方提供缓存。像 Nexus 或 Artifactory 这样的项目提供了这样的存储库管理。所以通常你安装其中之一,然后配置本地 Maven 发行版以针对该管理器工作。
我遇到一个问题,我在 POM.xml 文件中指定的 JAR 文件没有下载/导入到我的项目中。我知道这是由于我公司内部实施的网络限制造成的。
以下是我目前需要的 JAR 文件的一些示例:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.enterprisedt</groupId>
<artifactId>edtFTPj</artifactId>
<version>1.5.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.8.0</version>
<scope>compile</scope>
</dependency>
我想与我的网络管理员一起了解并纠正现有的限制,这些限制阻止了这些(和其他)Jar 文件(依赖项)的自动 Maven 管理。
我的问题是...如何向我的管理员指定这些依赖项的下载位置?是否有一个 URL 是使用我的依赖描述符构建的,试图联系它以尝试从中获取 Jar 文件?
为什么我可以使用浏览器下载 Jar 文件,而 Maven 托管依赖项下载(通过我的 IDE、SpringSource 工具套件)似乎被阻止了?
我对 Maven 环境了解不够,无法帮助我的网络管理员。
谢谢!
2016 年 8 月 23 日编辑:
我可以使用 settings.xml 文件告诉我的 IDE 我们的代理服务器。我仍然无法解决我的依赖关系。我认为我的等式中仍然缺少的是,我需要为我的代理服务器提供 'Certificate',以便它为我提供 'open the doors'。我们在网络上安装了此功能,因此我时不时需要 'sign in' 到我们的网络以允许浏览器工作。当我登录时,我正在做的是获取有效证书。当我在 mac 工作站上查找此证书时,我可以看到它在我的 'Keychain Access' 中进行管理。
所以问题来了...有没有办法告诉 IDE 证书在哪里以及如何使用它?
非常感谢您的帮助!
斯科特
因为您可能在代理后面,并且浏览器可能配置为在代理后面工作,而 Maven 没有。
为了定义代理,您必须在 $M2_HOME/conf/settings.xml:
中配置代理通常是这样的:
<proxies>
<proxy>
<id>optional</id>
<active>true</active>
<protocol>http</protocol>
<username>mkyong</username>
<password>password</password>
<host>proxy.host.com</host>
<port>1234</port>
<nonProxyHosts>local.net|some.host.com</nonProxyHosts>
</proxy>
现在关于存储库。 Maven 默认使用名为 repo1 的远程存储库,但有时您会想要定义自己的存储库(同样,通常这在 settings.xml 文件中完成)
通常组织维护具有一些 UI 的代理并为第三方提供缓存。像 Nexus 或 Artifactory 这样的项目提供了这样的存储库管理。所以通常你安装其中之一,然后配置本地 Maven 发行版以针对该管理器工作。