web-dev-qa-db-ja.com

資格情報が含まれていても、アーティファクトへの不正アクセス

Zipファイルをリモートの社内Mavenリポジトリにデプロイしようとしています(ハドソンに統合されたArtifactory)。

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は戻りコード401で終了します。

artifactoryのログを見る

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

Mavenが提供された資格情報を使用しない理由がわかりません。ここで何が間違っているのですか?

17
Abhijith

何らかの理由でPOMファイルの使用が機能しませんでした。だから私はコマンドラインからそれをしなければなりませんでした。

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

これがうまくいった理由はまだわかりません。また、私は以前にリストしたものからsettings.xmlを変更する必要はありませんでした。

[〜#〜]編集[〜#〜]

また、アーティファクトの[ホーム]タブで、[Maven設定]-> [設定の生成]をクリックしてMaven設定を取得できます。

2
Abhijith

平文パスワードの問題を解決するためのヒント:

  • Artifactoryにアクセスしてログインします。
  • ログインしたら、画面の右上にあるユーザー名をクリックします。
  • パスワードを入力し、emロック解除ボタンに入力して、暗号化されたパスワードを有効にします。
  • 画面の下部に表示されるタグをコピーして、settings.xmlファイルに貼り付けます。パスワードだけをコピーしたい場合は、パスワードの先頭にある「\」を含め、以下に示すタグと完全に同じになるようにしてください。
  • POM.xmlで、タグに定義されているサーバーのIDでタグを調整することを忘れないでください。
  • 更新ボタンをクリックして準備完了です!次のプロジェクトの公開時にすべてがうまくいくかどうかを確認してください。
14
Pmt

Hudsonは、settings.xmlをキャッシュしている可能性が高いです。このURL http:// your-hudson-url:8081/hudson/reload を使用してディスクから構成を再ロードするか、Hudsonが実行されているコンテナーを再起動してください。私のために働いた。

3
Olli Puljula

何を着ているか確認することを忘れないでください<distributionManagement> at your pom.xmlあなたのタグにあるものに対応。m2/settings.xml。

2
chuckedw

スナップショットバージョンを公開していますが、POMのdistributionManagementセクションでsnapshotRepositoryタグを指定していません。または、通常のバージョンを試してデプロイし、それが機能するかどうかを確認してください

1
Mark O'Connor

Mavenはデフォルトでプリエンプティブ認証を使用するように設定されておらず、チャレンジ時にいくつかの問題があります。

MavenのHttpClient Wagonを構成してプリエンプティブ認証を実行することもできます(http://maven.Apache.org/guides/mini/guide-http-settings.html)。
Jenkins\Hudsonを使用しているので、Jenkins\Hudson-Artifactoryプラグインを確認することをお勧めします。

0
noamt

Maven設定の詳細を更新し、nexusの認証情報を追加します。

credentials: admin
0
keerthi