带有HTTPS存储库和apache Wagon的Maven在代理下不起作用

时间:2019-02-13 14:31:56

标签: java eclipse maven wagon

我们正在使用Eclipse(12.18版)开发Maven应用程序,其中一些库位于公司的安全存储库中。

我已经在Maven设置文件中配置了存储库,如下所示:

<repositories>
   <repository>
       <id>MyRepository</id>
       <name>MyRepository</name>
       <url>https://companyUrl/repository/maven-3rdparty/</url>
       <releases>
          <enabled>true</enabled>
       </releases>
       <layout>default</layout>
   </repository>
</repositories>

此外,由于我们的Internet连接位于代理后面,因此我已经配置了代理设置。

在应用程序中,如果我尝试使用“ maven update”选项解决依赖关系,则不会出现任何错误,只是它不会下载jar文件。

如果我使用选项“ maven install”,则出现此错误:

Failed to execute goal on project MyProject: Could not resolve dependencies for project my.project:MyProject:jar:0.0.1: Failed to collect dependencies at externalLibrary:jar:1.0: Failed to read artifact descriptor for externalLibrary:jar:1.0: Could not transfer artifact externalLibrary:pom:1.0 from/to MyRepository (https://companyUrl/repository/maven-3rdparty/): sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 1]

我试图避免使用apache Wagon进行SSL证书验证,但我没有成功。这是我尝试的方式:

1-首先,我已经像这样配置MyProject的pom.xml:

<build>
    <extensions>
        <extension>
            <groupId>org.apache.maven.wagon</groupId>
            <artifactId>wagon-http-lightweight</artifactId>
            <version>3.3.2</version>
        </extension>
    </extensions>

    <plugins>    
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>properties-maven-plugin</artifactId>
            <version>1.0.0</version>
            <executions>
              <execution>
              <phase>initialize</phase>
                <configuration>
                  <properties>
                    <property>
                      <name>maven.wagon.http.ssl.insecure</name>
                      <value>true</value>
                    </property>
                    <property>
                      <name>maven.wagon.http.ssl.allowall</name>
                      <value>true</value>
                    </property>
                    <property>
                      <name>maven.wagon.http.ssl.ignore.validity.dates</name>
                      <value>true</value>
                    </property>
                  </properties>
                </configuration>
              </execution>
            </executions>
          </plugin> 
    </plugins>
</build>

2-由于第一个选项不起作用,我尝试在“ Maven Build ...”选项中的VM Arguments上加载旅行车属性:

-Dmaven.wagon.http.ssl.insecure=true 
-Dmaven.wagon.http.ssl.allowall=true 
-Dmaven.wagon.http.ssl.ignore.validity.dates=true

此选项没有一个成功。

因此,作为最后一个选择,我已经在Java安装的CACERTS中安装了存储库的SSL证书,并且显然可以正常工作。

但是,我们希望能够配置存储库而无需安装SSL证书。

我在做什么错? apache Wagon是否需要更多配置?我想念什么吗?

感谢您阅读。

0 个答案:

没有答案