Maven 插件不使用 Eclipse 的代理设置

Posted

技术标签:

【中文标题】Maven 插件不使用 Eclipse 的代理设置【英文标题】:Maven plugin not using Eclipse's proxy settings 【发布时间】:2011-12-05 23:12:09 【问题描述】:

我正在使用基于 Eclipse 3.7 的 springsource 工具套件 2.7.2。 Maven 插件现在与 Eclipse 一起开箱即用,这很棒,即使在以前的 Eclipse 版本中也会出现这个问题。

所以这是我的问题:

我已经在我的settings.xml 文件中设置了代理信息,并且在命令行上 Maven 工作得很好。我还在 Eclipse 配置本身中设置了相同的代理详细信息,并且我知道它是正确的,并且更新可以使用它而不是没有。

当然,我的 Eclipse 安装中的 Maven 插件设置为使用正确的 settings.xml 文件。

但是 Eclipse 中的 maven 只是不使用这些地方的代理设置,每次我更改 pom 文件时都非常烦人。 有人有这个问题的解决方案吗?

settings.xml

这是我的 settings.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
  <settings xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

  <profiles>
    <profile>
      <id>general</id>
      <repositories>
        <repository>
          <snapshots><enabled>false</enabled></snapshots>
          <id>ibiblio</id>
          <name>Maven ibiblio</name>
          <url>http://www.ibiblio.org/maven2</url>
        </repository>

        <repository>
          <snapshots><enabled>true</enabled></snapshots>
          <id>ibiblio2</id>
          <name>Maven ibiblio2</name>
          <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
        </repository>

        <repository>
          <snapshots><enabled>true</enabled></snapshots>
          <id>maven</id>
          <name>Maven sunsite</name>
          <url>http://repo1.maven.org/maven2/</url>
        </repository>

        <repository>
          <snapshots><enabled>true</enabled></snapshots>
          <id>jboss</id>
          <name>Maven jboss</name>
          <url>http://repository.jboss.org/maven2/</url>
        </repository>
      </repositories>
    </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>general</activeProfile>
  </activeProfiles>

  <proxies>
    <proxy>
      <id>proxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>myproxyserver</host>
      <port>80</port>
      <username>myusername</username>
      <password>mypassword</password>
    </proxy>
  </proxies>
</settings>

【问题讨论】:

你使用嵌入式maven安装吗? 是的,我没有安装任何特殊的 maven 支持,所以它都是开箱即用的。 M2E 代理使用对我有用。我刚刚检查了我的代理日志以确认它。请发布您的 settings.xml,也许命令行正在以另一种方式选择设置(例如,Linux 可能允许 http_proxy envvar)。 我现在添加了我的 settings.xml 内容。不幸的是,我无法访问代理日志,因为它由我的公司管理,对我来说完全无法访问 :( 但据我所知,这没问题,就像命令行一样,它工作得很好! 【参考方案1】:

Maven 插件使用可以设置配置的设置文件。它的路径在 Eclipse 中可用,地址为 Window|Preferences|Maven|User Settings。如果该文件不存在,请创建它并放入如下内容:

<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
                      http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository/>
  <interactiveMode/>
  <usePluginRegistry/>
  <offline/>
  <pluginGroups/>
  <servers/>
  <mirrors/>
  <proxies>
    <proxy>
      <id>myproxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>192.168.1.100</host>
      <port>6666</port>
      <username></username>
      <password></password>
      <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
    </proxy>
  </proxies>
  <profiles/>
  <activeProfiles/>
</settings>

编辑文件后,只需单击Update Settings 按钮即可完成。我刚刚完成它并且它有效:)

【讨论】:

进行上述更改后,如果您尝试在 Eclipse 中更新项目,仍可能会收到错误消息。您需要强制更新:右键单击您的项目(项目/包资源管理器)-> Maven -> 更新项目-> 选中“强制更新快照/发布”框,然后单击确定。 工作.. 感谢您提供示例 settings.xml 采样和强制更新,同时使用它对我有用!谢谢你们! 选中“强制更新快照/发布”框是绝对必要的。谢谢! 根据文档,异常必须由| 而非, 分隔(参见maven.apache.org/guides/mini/guide-proxies.html【参考方案2】:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">

     <proxies>
       <proxy>
          <active>true</active>
          <protocol>http</protocol>
          <host>proxy.somewhere.com</host>
          <port>8080</port>
          <username>proxyuser</username>
          <password>somepassword</password>
          <nonProxyHosts>www.google.com|*.somewhere.com</nonProxyHosts>
        </proxy>
      </proxies>

    </settings>

窗口 > 首选项 > Maven > 用户设置

【讨论】:

嘿,伙计们,如果您无法修复 ***.com/a/25912472/5478948,请看这里【参考方案3】:

默认情况下,Eclipse 不知道您的外部 Maven 安装并使用嵌入式安装。因此,为了让 Eclipse 使用您的全局设置,您需要在菜单 SettingsMavenInstallations 中进行设置。

【讨论】:

其实这是不正确的。在 Settings > Maven > User Settings 中,您可以设置 settings.xml 文件的路径,该文件默认指向正确的位置。我也尝试过使用嵌入式或外部版本的 maven,但仍然没有运气。

以上是关于Maven 插件不使用 Eclipse 的代理设置的主要内容,如果未能解决你的问题,请参考以下文章

gradle代理设置

eclipse maven项目中使用tomcat插件部署项目

eclipse 中创建maven 项目pom.xml配置好了不自动下载jar包是为啥

svn导出一个maven项目到eclipse中后,不显示maven项目标志

亟梦Eclipse安装Maven插件后导致Eclipse启动出错

怎么设置maven的远程仓库