gpt4 book ai didi

apache - Maven 3.5.2 无法将 Artifact 部署到 Artifactory,出现错误 417

转载 作者:行者123 更新时间:2023-12-04 15:18:10 26 4
gpt4 key购买 nike

我正在创建简单的 pom项目如下:-

<project 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/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>test-maven</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>test-maven</name>
<distributionManagement>
<repository>
<id>central</id>
<name>myartifactory</name>
<url>
https://myhost/artifactory/libs-release-local
</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>myartifactory</name>
<url>
https://myhost/artifactory/libs-snapshot-local
</url>
</snapshotRepository>
</distributionManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
settings.xml

<servers>
<server>
<id>central</id>
<username>my-user-id</username>
<password>some-encrypyted-password</password>
</server>
<server>
<id>snapshots</id>
<username>my-user-id</username>
<password>some-encrypyted-password</password>
</server>
</servers>

这个项目可以部署到 Artifactory 5.8.3通过使用 Maven 3.3.9 : mvn clean deploy .

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T23:41:47+07:00)
Maven home: C:\Java.Application\Apache\apache-maven-3.3.9\bin\..
Java version: 1.8.0_121, vendor: Oracle Corporation
Java home: C:\Java.Application\Sun\Java\jdk1.8.0_121\jre
Default locale: en_US, platform encoding: UTF-8
OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"

但是当我改成 Maven 3.5.2
Apache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T14:58:13+07:00)
Maven home: C:\Java.Application\Apache\apache-maven-3.5.2\bin\..
Java version: 1.8.0_121, vendor: Oracle Corporation
Java home: C:\Java.Application\Sun\Java\jdk1.8.0_121\jre
Default locale: en_US, platform encoding: UTF-8
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

在执行 mvn clean deploy 期间有一个错误

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy 
(default-deploy) on project test-maven: Failed to deploy artifacts:
Could not transfer artifact com.test:test-maven:pom:0.0.1-20180213.064245-2 from/to
snapshots (https://myhost/artifactory/libs-snapshot-local): Failed to transfer file:
https://myhost/artifactory/libs-snapshot-local/com/test/test-maven/
0.0.1-SNAPSHOT/test-maven-0.0.1-20180213.064245-2.pom.
Return code is: 417, ReasonPhrase: Expectation Failed. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException:
Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy
(default-deploy) on project test-maven:
Failed to deploy artifacts: Could not transfer artifact...
.../0.0.1-SNAPSHOT/test-maven-0.0.1-20180213.064245-2.pom.
Return code is: 417, ReasonPhrase: Expectation Failed.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)

难道我做错了什么?你能帮忙指点一下吗?

编辑 1
  • artifactory.log处没有任何日志打印那时候。
  • request.log

  • 20180213162947|1|REQUEST|some-ip|non_authenticated_user|GET|/libs-snapshot-local/com/test/test-maven/0.0.1-SNAPSHOT/maven-metadata.xml|HTTP/1.0|401|0
    20180213162947|193|REQUEST|some-ip|my-user|GET|/libs-snapshot-local/com/test/test-maven/0.0.1-SNAPSHOT/maven-metadata.xml|HTTP/1.0|200|605
    20180213162947|3|REQUEST|some-ip|my-user|GET|/libs-snapshot-local/com/test/test-maven/0.0.1-SNAPSHOT/maven-metadata.xml.sha1|HTTP/1.0|200|40
  • access.log

  • 2018-02-13 16:29:47,347 [ACCEPTED DOWNLOAD] libs-snapshot-local:com/test/test-maven/0.0.1-SNAPSHOT/maven-metadata.xml for my-user/some-ip.
    2018-02-13 16:29:47,437 [ACCEPTED DOWNLOAD] libs-snapshot-local:com/test/test-maven/0.0.1-SNAPSHOT/maven-metadata.xml.sha1 for my-user/some-ip.

    编辑 2
    mvn clean deploy -e -X日志

    [INFO] 
    [INFO] --- maven-deploy-plugin:2.8.2:deploy (default-deploy) @ test-maven ---
    [DEBUG] Dependency collection stats: {ConflictMarker.analyzeTime=129185, ConflictMarker.markTime=69136, ConflictMarker.nodeCount=36, ConflictIdSorter.graphTime=58074, ConflictIdSorter.topsortTime=20149, ConflictIdSorter.conflictIdCount=16, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=960001, ConflictResolver.conflictItemCount=36, DefaultDependencyCollector.collectTime=76597424, DefaultDependencyCollector.transformTime=1258668}
    [DEBUG] org.apache.maven.plugins:maven-deploy-plugin:jar:2.8.2:
    [DEBUG] org.apache.maven:maven-plugin-api:jar:2.2.1:compile
    [DEBUG] org.apache.maven:maven-project:jar:2.2.1:compile
    [DEBUG] org.apache.maven:maven-settings:jar:2.2.1:compile
    [DEBUG] org.apache.maven:maven-profile:jar:2.2.1:compile
    [DEBUG] org.apache.maven:maven-artifact-manager:jar:2.2.1:compile
    [DEBUG] org.apache.maven:maven-repository-metadata:jar:2.2.1:compile
    [DEBUG] backport-util-concurrent:backport-util-concurrent:jar:3.1:compile
    [DEBUG] org.apache.maven:maven-plugin-registry:jar:2.2.1:compile
    [DEBUG] org.codehaus.plexus:plexus-interpolation:jar:1.11:compile
    [DEBUG] org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile
    [DEBUG] junit:junit:jar:3.8.1:compile
    [DEBUG] classworlds:classworlds:jar:1.1-alpha-2:compile
    [DEBUG] org.apache.maven:maven-model:jar:2.2.1:compile
    [DEBUG] org.apache.maven:maven-artifact:jar:2.2.1:compile
    [DEBUG] org.codehaus.plexus:plexus-utils:jar:3.0.15:compile
    [DEBUG] Created new class realm plugin>org.apache.maven.plugins:maven-deploy-plugin:2.8.2
    [DEBUG] Importing foreign packages into class realm plugin>org.apache.maven.plugins:maven-deploy-plugin:2.8.2
    [DEBUG] Imported: < maven.api
    [DEBUG] Populating class realm plugin>org.apache.maven.plugins:maven-deploy-plugin:2.8.2
    [DEBUG] Included: org.apache.maven.plugins:maven-deploy-plugin:jar:2.8.2
    [DEBUG] Included: backport-util-concurrent:backport-util-concurrent:jar:3.1
    [DEBUG] Included: org.codehaus.plexus:plexus-interpolation:jar:1.11
    [DEBUG] Included: junit:junit:jar:3.8.1
    [DEBUG] Included: org.codehaus.plexus:plexus-utils:jar:3.0.15
    [DEBUG] Configuring mojo org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-deploy-plugin:2.8.2, parent: sun.misc.Launcher$AppClassLoader@55f96302]
    [DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy' with basic configurator -->
    [DEBUG] (f) artifact = com.test:test-maven:pom:0.0.1-SNAPSHOT
    [DEBUG] (f) attachedArtifacts = []
    [DEBUG] (f) deployAtEnd = false
    [DEBUG] (s) localRepository = id: local
    url: file:///D:/M2/Repository/
    layout: default
    snapshots: [enabled => true, update => always]
    releases: [enabled => true, update => always]

    [DEBUG] (f) offline = false
    [DEBUG] (f) packaging = pom
    [DEBUG] (f) pomFile = D:\JavaPrj\sample\test-maven\pom.xml
    [DEBUG] (f) project = MavenProject: com.test:test-maven:0.0.1-SNAPSHOT @ D:\JavaPrj\sample\test-maven\pom.xml
    [DEBUG] (f) reactorProjects = [MavenProject: com.test:test-maven:0.0.1-SNAPSHOT @ D:\JavaPrj\sample\test-maven\pom.xml]
    [DEBUG] (f) retryFailedDeploymentCount = 1
    [DEBUG] (f) skip = false
    [DEBUG] (f) updateReleaseInfo = false
    [DEBUG] -- end configuration --
    [DEBUG] Using transporter WagonTransporter with priority -1.0 for https://myhost/artifactory/libs-snapshot-local
    [DEBUG] Using connector BasicRepositoryConnector with priority 0.0 for https://myhost/artifactory/libs-snapshot-local with username=my-user, password=***
    Downloading from snapshots: https://myhost/artifactory/libs-snapshot-local/com/test/test-maven/0.0.1-SNAPSHOT/maven-metadata.xml
    Progress (1): maven-metadata.xml (605 B)

    Downloaded from snapshots: https://myhost/artifactory/libs-snapshot-local/com/test/test-maven/0.0.1-SNAPSHOT/maven-metadata.xml (605 B at 961 B/s)
    [DEBUG] Writing tracking file D:\M2\Repository\com\test\test-maven\0.0.1-SNAPSHOT\resolver-status.properties
    Uploading to snapshots: https://myhost/artifactory/libs-snapshot-local/com/test/test-maven/0.0.1-SNAPSHOT/test-maven-0.0.1-20180213.092946-2.pom
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 2.018 s
    [INFO] Finished at: 2018-02-13T16:29:46+07:00
    [INFO] Final Memory: 11M/162M
    [INFO] ------------------------------------------------------------------------

    编辑 3

    添加 Apache httpd access_log .

    my-ip - - [13/Feb/2018:17:40:48 +0700] "GET /artifactory/libs-snapshot-local/com/test/test-maven/0.0.1-SNAPSHOT/maven-metadata.xml HTTP/1.1" 401 91
    my-ip - - [13/Feb/2018:17:40:48 +0700] "GET /artifactory/libs-snapshot-local/com/test/test-maven/0.0.1-SNAPSHOT/maven-metadata.xml HTTP/1.1" 200 605
    my-ip - - [13/Feb/2018:17:40:48 +0700] "GET /artifactory/libs-snapshot-local/com/test/test-maven/0.0.1-SNAPSHOT/maven-metadata.xml.sha1 HTTP/1.1" 200 40
    my-ip - - [13/Feb/2018:17:40:48 +0700] "PUT /artifactory/libs-snapshot-local/com/test/test-maven/0.0.1-SNAPSHOT/test-maven-0.0.1-20180213.104048-2.pom HTTP/1.1" 417 364

    编辑 4

    关于 Configuring a Reverse Proxy ,此生成不适用于 Artifactory OSS 版本。
  • 这是我的 Apache httpd环境。

  • <Location /artifactory/>

    ProxyPass https://myhost:62443/artifactory/
    ProxyPassReverse https://myhost/artifactory/
    SetEnv force-proxy-request-1.0 1
    SetEnv proxy-nokeepalive 1
    </Location>
  • artifactory/tomcat/conf/server.xml

  • <Server port="8015" shutdown="SHUTDOWN">

    <Service name="Catalina">
    <!--Connector port="8081" sendReasonPhrase="true"/-->
    <!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->
    <Connector
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    port="62443" maxThreads="200" URIEncoding="UTF-8"
    scheme="https" secure="true" SSLEnabled="true"
    keystoreFile="/path/to/jks" keystorePass="some-password"
    clientAuth="false" sslProtocol="TLS"/>

    <!-- Must be at least the value of artifactory.access.client.max.connections -->
    <Connector port="8040" sendReasonPhrase="true" maxThreads="50"/>

    <!-- This is the optional AJP connector -->
    <Connector port="8019" protocol="AJP/1.3" sendReasonPhrase="true"/>

    <Engine name="Catalina" defaultHost="localhost">
    <Host name="localhost" appBase="webapps" startStopThreads="2"/>
    </Engine>
    </Service>

    </Server>

    编辑 5

    我想强调一些重要的如下: -
  • 通过使用 Maven 3.3.9针对现有 Artifactory 部署此项目与 Apache httpd工作正常。如果我错了,请纠正我。我了解配置没有任何问题。
  • 唯一的变化是 Maven 3.5.2 .

  • 我不知道为什么会出现这个问题。

    编辑 6

    由于 wagon 有一个异常(exception)
    Caused by: org.apache.maven.wagon.TransferFailedException: 
    Failed to transfer file: https://myhost/artifactory/libs-snapshot-local/com/test/test-maven/0.0.1-SNAPSHOT/test-maven-0.0.1-20180214.065633-7.pom. Return code is: 417, ReasonPhrase: Expectation Failed.
    at org.apache.maven.wagon.shared.http.AbstractHttpClientWagon.put (AbstractHttpClientWagon.java:635)
    at org.apache.maven.wagon.shared.http.AbstractHttpClientWagon.put (AbstractHttpClientWagon.java:557)
    at org.apache.maven.wagon.shared.http.AbstractHttpClientWagon.put (AbstractHttpClientWagon.java:539)
    at org.apache.maven.wagon.shared.http.AbstractHttpClientWagon.put (AbstractHttpClientWagon.java:533)
    at org.apache.maven.wagon.shared.http.AbstractHttpClientWagon.put (AbstractHttpClientWagon.java:513)

    我比较过 wagon来自 maven_home/lib Maven之间 3.3.93.5.2 ,发现 3.3.9使用 wagon version 2.103.5.2使用 wagon 2.12 .

    尝试 1

    我复制了 maven_home/lib来自 Maven 3.3.9给 Maven 3.5.2 , mvn clean deploy工作正常。

    尝试 2

    复制 maven_home/lib来自 Maven 3.5.2给 Maven 3.3.9 ,同样的异常发生。

    尝试 3

    我正在更新 pom使用最新的 wagon 3.0.0如下:-
    <properties>
    <my.wagon.vesion>3.0.0</my.wagon.vesion>
    </properties>
    <build>
    <extensions>
    <extension>
    <groupId>org.apache.maven.wagon</groupId>
    <artifactId>wagon-file</artifactId>
    <version>${my.wagon.vesion}</version>
    </extension>
    <extension>
    <groupId>org.apache.maven.wagon</groupId>
    <artifactId>wagon-http-shared</artifactId>
    <version>${my.wagon.vesion}</version>
    </extension>
    <extension>
    <groupId>org.apache.maven.wagon</groupId>
    <artifactId>wagon-http</artifactId>
    <version>${my.wagon.vesion}</version>
    </extension>
    <extension>
    <groupId>org.apache.maven.wagon</groupId>
    <artifactId>wagon-provider-api</artifactId>
    <version>${my.wagon.vesion}</version>
    </extension>
    </extensions>
    </build>

    幸运的是当我执行 mvn clean deploy -e -X对抗 wagon 3.0.0有一个 HTTP header/request/response打印,以便我找到响应
    [DEBUG] http-outgoing-0 << "<h1>Expectation Failed</h1>[\n]"
    [DEBUG] http-outgoing-0 << "<p>The expectation given in the Expect request-header[\n]"
    [DEBUG] http-outgoing-0 << "field could not be met by this server.[\n]"
    [DEBUG] http-outgoing-0 << "The client sent<pre>[\n]"
    [DEBUG] http-outgoing-0 << " Expect: 100-continue[\n]"
    [DEBUG] http-outgoing-0 << "</pre>[\n]"
    [DEBUG] http-outgoing-0 << "</p><p>Only the 100-continue expectation is supported.</p>[\n]"
    [DEBUG] http-outgoing-0 << "</body></html>[\n]"
    [DEBUG] http-outgoing-0 << HTTP/1.1 417 Expectation Failed

    然后我用谷歌搜索 Only the 100-continue expectation is supported.并从 StackOverflow 中发现了一些重要信息: Apache and mod_proxy not handling HTTP 100-continue from client HTTP 417 .

    尝试 4

    我已经设置了 httpd.conf正如上面的线程所提到的。
    <IfModule mod_headers.c>
    RequestHeader unset Expect early
    </IfModule>

    目前我可以执行 mvn clean deploy通过使用 Maven 3.5.2适本地。

    最佳答案

    由于根本原因是

    [DEBUG] http-outgoing-0 << "<h1>Expectation Failed</h1>[\n]"
    [DEBUG] http-outgoing-0 << "<p>The expectation given in the Expect request-header[\n]"
    [DEBUG] http-outgoing-0 << "field could not be met by this server.[\n]"
    [DEBUG] http-outgoing-0 << "The client sent<pre>[\n]"
    [DEBUG] http-outgoing-0 << " Expect: 100-continue[\n]"
    [DEBUG] http-outgoing-0 << "</pre>[\n]"
    [DEBUG] http-outgoing-0 << "</p><p>Only the 100-continue expectation is supported.</p>[\n]"
    [DEBUG] http-outgoing-0 << "</body></html>[\n]"
    [DEBUG] http-outgoing-0 << HTTP/1.1 417 Expectation Failed

    StackOverflow answer建议删除 Expect通过设置 Apache httpd.conf作为
    <IfModule mod_headers.c>
    RequestHeader unset Expect early
    </IfModule>

    目前我可以执行 mvn clean deploy通过使用 Maven 3.5.2适本地。

    关于apache - Maven 3.5.2 无法将 Artifact 部署到 Artifactory,出现错误 417,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48761241/

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