0

我正在尝试用 maven 构建一些 .jar 包。由于我通过代理服务器连接到 Internet,我的命令如下所示:

mvn -DargLine="-Dhttp.proxyHost=my.proxy.com -Dhttp.proxyPort=8080" install

这样由此创建的所有其他进程都将使用这些设置。

但是,在 TESTS 阶段,fork 进程尝试下载一些包,即使它的参数中代理设置(ps ax | grep java显示),我可以看到netstat -ntp这个进程直接连接到存储库而忽略了代理设置。

tcpdump显示没有与 8080 的连接。

有任何想法吗?

升级版:

所以,基本上我正在尝试构建 JBoss。据我了解,它由不同的子系统组成,应该单独构建。例如,我想构建 jboss-as-cmp。我没有 DargLine 的命令:

cd /root/jboss/jboss-eap-6.1.0.Alpha/jboss-eap-6.1-src/cmp
mvn install

我添加到 /root/.m2 中的 mvn settings.xml

<proxies>
   <proxy>
      <active>true</active>
      <protocol>http</protocol>
      <host>my.proxy.com</host>
      <port>8080</port>
   </proxy>
</proxies>

我读过,surefire 插件也可以配置为使用代理,所以在我的 jboss-as-cmp 的 pom.xml 中我添加了

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
           <includes>
                <include>org/jboss/as/cmp/**/*TestCase.java</include>
            </includes>
                <systemPropertyVariables>
                   <http.proxyHost>my.proxy.com</http.proxyHost>
                   <http.proxyPort>8080</http.proxyPort>
                </systemPropertyVariables>
        </configuration>
    </plugin>

我的mvn版本

Apache Maven 3.0.5 (rNON-CANONICAL_2013-04-24_16-52_root; 2013-04-24 16:52:00+0300)
Maven home: /usr/share/apache-maven-3.0.5
Java version: 1.7.0_19, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.19.x86_64/jre
Default locale: en_GB, platform encoding: UTF-8
OS name: "linux", version: "3.8.6-203.fc18.x86_64", arch: "amd64", family: "unix"

环境变量:

M2_HOME=/usr/share/apache-maven-3.0.5
PATH=/usr/share/apache-maven-3.0.5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

我没有为 jboss-as-cmp 更改 pom.xml 中的任何其他设置。

4

1 回答 1

2

通常要使用代理,您应该在 user-home-dir/.m2/settings.xml 中的 settings.xml 中定义它们

示例是:

<settings>
  <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>

http://maven.apache.org/guides/mini/guide-proxies.html

于 2013-04-25T06:45:18.767 回答