1

우리는 Artifactory 서버에 출시 된 아티팩트를 배포하기 위해 M2 Release Plugin을 얻으려고합니다. 우리 pom.xml의 구성은 메이븐이 그것을 우리에게 알려줍니다, 우리가 지금 젠킨스에 릴리스 빌드를 시작하면 Config File Provide Plugin 우리가 적절한 자격 증명Jenkins의 M2 Release Plugin이 Artifactory에 인증되지 않는 이유는 무엇입니까?

<settings> 
    <servers> 
     <server> 
      <id>artifactory</id> 
      <username>jenkins</username> 
      <password>secret!</password> 
     </server> 
    </servers> 
</settings> 

있는 글로벌 settings.xml를 지정하여이

.... 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <version>2.3.2</version> 
</plugin> 
.... 
<distributionManagement> 
    <repository> 
     <id>artifactory</id> 
     <url>http://example.com/artifactory/jenkins-release</url> 
    </repository> 
</distributionManagement> 

처럼 보인다 우리가 볼 수있는 서버 로그에서 artifactory

[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project example-maven-plugin: Failed to deploy artifacts: Could not transfer artifact com.example.maven.plugins:example-maven-plugin:jar:0.0.9 from/to artifactory (http://example.com/artifactory/jenkins-release): Failed to transfer file: http://example.com/artifactory/jenkins-release/com/example/maven/plugins/example-maven-plugin/0.0.9/example-maven-plugin-0.0.9.jar. Return code is: 401, ReasonPhrase:Unauthorized. -> [Help 1] 

에서 HTTP 401을받은 사용자 "non_authenticated_user"내가 이 URL에 HTTP PUT 요청을하려고합니다.

Maven 또는 Jenkins에 몇 가지 구성이 있습니까? 자격 증명이 정확하고 내 로컬 컴퓨터의 Jenkins에서 settings.xml을 사용하면 모든 것이 예상대로 작동합니다.

+0

Jenkins가 제공 한 설정 파일을 선택하지 않은 것 같습니다. 이유와 관련없는 주제에 대해 잘 모르시겠습니까? [Artifactory Jenkins plugin] (https://wiki.jenkins-ci.org/display/JENKINS/Artifactory+Plugin)을 사용하지 않으시겠습니까? 이 문제를 완전히 해결하고 출시 기능이 내장되어 있습니다. – JBaruch

+0

그게 우리가 생각한 것입니다, 아마도 플러그인의 버그지만, 나는 우리가 아무것도 놓치지 않았 음을 확인하고 싶었습니다. 우리는이 플러그인을 사용하지만 SNAPSHOT 빌드의 자동 배포에만 사용합니다. 우리는 Jenkins M2 Release Plugin의 일부 기능이 부족한이 플러그인의 릴리스 관리를 발견했습니다 (예 : SCM 작성을위한 별도의 자격 증명, 릴리스 빌드/비 릴리스 buids 간의 차별화 ...) – moxn

+1

릴리스 논리를 완전히 사용자 정의 할 수 있습니다 [staging user plugin] (http://www.jfrog.com/confluence/display/RTF/User+Plugins#UserPlugins-Staging)을 사용하십시오. 몇 가지 예가 [our GitHub] (https://github.com/JFrogDev/artifactory-user-plugins) – JBaruch

답변

1

2.2.2 이전의 a bug in the Maven release plugin은 구성 파일 제공자가 Maven에 전달하는 설정 파일을 무시하게합니다. 해결 방법은 다음과 같이 프로젝트 pom.xml에 새로운 maven release plugin을 지정하는 것입니다.

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-release-plugin</artifactId> 
      <version>2.4.2</version> 
     </plugin> 
    </plugins> 
</build> 
+0

답장을 보내 주셔서 감사합니다.하지만 당시 2.3.2를 사용하고있었습니다. – moxn

+0

Doh, 지금 귀하의 질문에 버전 번호를 보았습니다! 당신의 문제에 대한 묘사가 내 것과 정확히 같았 기 때문에 다른 사람들을 돕기 위해 내 대답을 떠날 것입니다. – robpvn

+0

관련이 있지만 약간 다른 맥락에서 우리에게 문제가 수정 되었기 때문에이 대답을 유보하십시오. 다른 모듈에서는이 플러그인의 버전을 설정하지 않았으므로 Maven은 2.7.x를 사용했습니다. 다시 2.4.1로 전환하면 문제가 해결되었습니다. – moxn