Nexusサーバーの自分のリポジトリにアーティファクトをデプロイすると、「アーティファクトをデプロイできませんでした:アーティファクトを転送できませんでした」「http:/// my_artifactファイルを転送できませんでした。戻りコード:400」
次のMavenローカル構成で1つのカスタムリポジトリmy_repoでNexusを実行しています:
settings.xml
<server>
<id>my_repo</id>
<username>user</username>
<password>pass</password>
</server>
...
<mirror>
<id>my_repo</id>
<name>Repo Mirror</name>
<url><my_url_to_my_repo></url>
<mirrorOf>*</mirrorOf>
</mirror>
pom.xml
<distributionManagement>
<repository>
<id>my_repo</id>
<name>my_repo</name>
<url><my_url_to_my_repo></url>
<layout>default</layout>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Snapshots</name>
<url><my_url_to_my_snapshot_repo></url>
</snapshotRepository>
</distributionManagement>
そして、私は実行します
mvn deploy
エラーを取得します。何か案が?
私が考えることができるいくつかのこと:
それらを確認し、まだ問題が発生した場合は、ここで詳細を提供してください。
別の答えを作成するだけです。回答は、実際には受け入れられた回答のコメントにあります。
アーティファクトのバージョンを変更して、-SNAPSHOT
で終わるようにしてください。
私の問題の原因は、受け入れられた答えの原因の1つとして述べられているように、-source.jarsが2回アップロードされていた(maven-source-pluginで)ことでした。私が言及した回答にリダイレクト: Mavenリリースプラグインが失敗します:ソースアーティファクトが2回展開されます
今日私はこの正確な問題を抱えていましたが、問題は、リリースしようとしていたバージョンがすでにNexusレポジトリにあったことでした。
私の場合、これはおそらくrelease:performの以前の呼び出し中のネットワーク切断が原因でした。接続が失われたとしても、リリースは成功したようです。
まれに、同じ安定したアーティファクトをNexusに再デプロイする必要がある場合、デフォルトでは失敗します。再度デプロイする目的でアーティファクトをNexusから(Webインターフェースを介して)削除しても、デプロイは失敗します。 jarまたはpomは、ディレクトリに残っている他のファイルをクリアしません。ボックスにログオンし、ディレクトリ全体を削除する必要があります。
以下を試みると、400 Bad Requestが返されます。
例:0.0.1-SNAPSHOT
(リリースとして)nexusにまだ存在していないこと(アーティファクトとバージョン)を確認します。その場合、不良リクエストを返します。
今日、「リターンコードは400、ReasonPhrase:Bad Request」という追加で同じ問題が発生しました。上記の回答から「アーティファクトはリリースであればそのバージョンで既にデプロイされている」問題であることが判明しました リンクの説明をここに入力してください
まだ言及されていないソリューションの1つは、リリースリポジトリへの再展開を許可するようにNexusを設定することです。これは何らかの理由で設定されているため、ベストプラクティスではない可能性がありますが、Nexusリポジトリの[設定]タブで[アクセス設定]に移動し、[展開ポリシー]を[再展開を許可]に設定できます。
上記の回答のいずれかがうまくいった場合は、管理者側から直接新しいアーティファクトを作成できます(以下に添付されているNEXUSスクリーンショット)。
Login to nexus
UI http:// YOUR_URL:8081/nexus (username:adminデフォルトのパスワード:admin123)Click repositories
をクリックし、レポをクリックします。例:リリースをクリックします。artifact Upload
(最後のタブ)を選択します。GAV definition
をGAV Param
として選択してから、groupid、artifact id、およびversionを入力します。これで、対応するプロジェクトをプロジェクトに追加できるようになります(下のスクリーンショット)。
これは、バージョンに関する命名ポリシーがあり、展開しようとしているバージョン番号を禁止している場合にも発生する可能性があります。私の場合、私はバージョンをアップロードしようとしました(リポジトリをリリースするために)2.0.1
が、後でネクサス設定がリリースに整数以外を許可しないことがわかりました。
後でバージョン2
で試し、正常にデプロイしました。
エラーメッセージは間違いなく役に立ちません:
Return code is: 400, ReasonPhrase: Repository does not allow updating assets: maven-releases-xxx. -> [Help 1]
より良いメッセージはversion 2.0.1 violates naming policy
だったかもしれません
400エラーの場合、リポジトリの「展開ポリシー」、通常は「再展開を無効にする」を確認してください。ほとんどの場合、ライブラリバージョンは既に存在しているため、「CUT NOT PUT put ' https://yoururl/some.jar '。サーバーからステータスコード400を受信しました。リポジトリはアセットの更新を許可しない:「リポジトリ名」
したがって、これを解決するにはいくつかのオプションがあります。 1-再デプロイを許可する2-アップロードしようとしているリポジトリからバージョンを削除する3-バージョン番号を変更する