开发者

unauthorized access on artifactory even though credentials are included

I am trying to deploy a zip file to a remote inhouse maven repo.(artifactory integrated into hudson).

pom.xml

...开发者_高级运维
<modelVersion>4.0.0</modelVersion>

<groupId>mygroupId</groupId>
<artifactId>myartifactid</artifactId>   

<version>1.0-SNAPSHOT</version>

<distributionManagement>
    <repository>
      <id>hudson</id>
      <name>hudson-releases</name>
      <url>http://url to repo</url>
    </repository>
  </distributionManagement>
...

settings.xml

<servers>
<server>
  <id>hudson</id>
  <username>username</username>
  <password>password</password>
</server>
</servers> 

maven deploy

 mvn deploy:deploy-file -Durl=http://url -Dfile=file-1.0.0.zip  -Dpackaging=zip  -DpomFile=pom.xml

maven quits with return code 401.

Looking at artifactory's logs

 2011-07-15 13:52:50,090 [DENIED DEPLOY] libs-release-local:somefile.zip for anonymous/192.168.220.146.

I don't understand why maven doesn't use the supplied credentials. What am i doing wrong here ?


Tip to solve the problem with the clear text password:

  • Access and login into Artifactory.
  • Once you are logged in, click over your user name, on the superior right corner of the screen.
  • Put your password then clique in the em Unlockbutton, enabling the encrypted password.
  • Copy the tag that will be showed on the inferior part of the screen and paste it into the settings.xml file. If you prefer to just copy the password, be sure about let it exactly equals the tag showed below, including the "\" at the beginning of the password.
  • Remember to adjust the tag with the id of your server, defined into the tag, in your POM.xml
  • Click in Update button and ready! Check if everything will occur well at the next project's publication.


Don´t forget to check that what you put on <distributionManagement> at your pom.xml corresponds to what is on the tags of your .m2/settings.xml.


Hudson is most likely caching settings.xml. You can try to reload configuration from the disk using this url http://your-hudson-url:8081/hudson/reload or restart the container Hudson is running on. Worked for me.


For some reason using a POM file didn't work. So i had to do it from command line.

mvn deploy:deploy-file -Durl=http://url -Dfile=file-1.0.0.zip  -Dpackaging=zip  -DartifactId=aid -DgroupId=groupId -DrepositoryId=repId -Dversion=1.0-SNAPSHOT

I still do not know why this worked. Also , i didn't have to change settings.xml from what i listed before.

EDIT

Also, on the home tab in artifactory, you can get maven settings by clicking "Maven settings->Generate Settings" .


Maven is not set to use preemptive authentication by default and has some issues when being challenged.

You can try configuring Maven's HttpClient Wagon to do preemptive authentication (http://maven.apache.org/guides/mini/guide-http-settings.html), though I rarely managed to get it working properly.
Since you're using Jenkins\Hudson, you might want to take a look at the Jenkins\Hudson - Artifactory plugin:

  • https://wiki.jenkins-ci.org/display/JENKINS/Artifactory+Plugin
  • http://wiki.hudson-ci.org/display/HUDSON/Artifactory+Plugin


You're publishing a snapshot version but you haven't specified a snapshotRepository tag in the distributionManagement section of your POM. Alternatively try and deploy a normal version and see if that works


Update Maven configuration details and add the credentials of nexus:

credentials: admin
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜