maven コマンドは、jar パッケージを nexus にアップロードします。

シリーズ記事ディレクトリ

1. Linux インストール Nexus3.42.0-01 グラフィック チュートリアル
2. Nexus 作成 Maven プライベート サーバー グラフィック チュートリアル
3. nexus を使用して jar パッケージをアップロードする グラフィック チュートリアル
4. IDEA Maven プロジェクト jar パッケージを nexus ウェアハウスにアップロードする グラフィック チュートリアル
5. IDEA Maven ダウンロードで使用するnexus の jar パッケージ グラフィック チュートリアル


序文

アイデアの maven プロジェクトなど、maven を統合するプロジェクトの場合、プロジェクトは deploy:deploy コマンドを使用してリモート リポジトリにデプロイできます。Maven を統合しないプロジェクトの場合、プロジェクトをリモート リポジトリにデプロイする方法を教えてください。この記事では、maven コマンドを直接使用してリモート リポジトリ (nexus) にリソースをアップロードする方法を主に紹介します。

公式 Web サイトのアドレスを参照してください:
Apache Maven Deployment Plugin – Usage
Maven – Available Plugins (apache.org)


1.メイブンとは?

Maven は、Java プロジェクトのビルドと依存関係の管理をサポートするツールです。

依存関係管理ツールとして、Maven は大規模な jar パッケージを管理し、依存する jar をダウンロードできます。

Maven はビルド管理ツールです. IDEA を開発に使用すると、IDEA がビルド作業を行います. IDEA 環境を離れた後、特別なツールが必要になります. Maven は、jar パッケージの作成に役立ちます

二、使う

1.最初にmavenのsettings.xmlファイルに追加します

settings.xml ファイル (例):

!--nexus服务器-->
  <servers>
<!--id为对应资源库id-->  
    <server>  
        <id>tfjy-snapshot-hosted</id>  
        <username>admin</username>  
        <password>nexusb-test</password>  
    </server>
    <server>  
        <id>tfjy-hosted</id>  
        <username>admin</username>  
        <password>nexusb-test</password>  
    </server>      
  </servers>  

2.対応するmavenコマンド

Maven コマンド構文:

mvn deploy:deploy-file
-DgroupId=xxx.xxx.xxx (pom ファイルのラベルに対応)
-DartifactId=xxx-xxx (pom ファイルのラベルに対応)
-Dversion=xxx (pom ファイルのラベルに対応)
-Dpackaging=xxx ( upload type )
-Dfile=xxx:\xxx\xxx. (ファイルパス)
-DpomFile=xxxx は、アップロードするjarパッケージに対応するPomファイルの絶対パスを示します。
-Durl=http://xxx.xxx.xx:xxxx/xxx (アップロードされたサーバー)
-DrepositoryId=xxxxx (サーバー ID、setting.xml ファイルで構成された serverId、プライベート サーバーのユーザー名とパスワードを関連付けるために使用)

注: 現在アップロードされている Jar が他の Jar にも依存している場合は、現在の Jar の pom ファイルも同時にアップロードする必要があります。

2.1 リソースを pom または jar パッケージとしてリモート リソース ライブラリにアップロードする

コード例: Windows コマンド プロンプトを開き (Windows+R、cmd と入力して Enter キーを押します)、mvn コマンドを入力すると、ここでアップロードされるリソースは pom ファイルのみになります。


mvn deploy:deploy-file -DgroupId=com.tfjybj -DartifactId=metaversePro-backend -Dversion=1.0-SNAPSHOT -Dpackaging=pom -Dfile=F:\maven\metaversePro-backend\1.0-SNAPSHOT\metaversePro-backend-1.0-SNAPSHOT.pom  -Durl=http://xxxxx/repository/tfjy-snapshot-hosted/ -DrepositoryId=tfjy-snapshot-hosted

結果のスクリーンショット:

ここに画像の説明を挿入
リモート リソース ライブラリをチェックインすると、アップロードされたリソースがアップロードされていることがわかります。
ここに画像の説明を挿入

2.2 jar パッケージをアップロードし、この jar も他の Jar に依存し、同時に現在の Jar の pom ファイルをアップロードする

コード例: 違いは、 -DpomFile= を追加する必要があることです

mvn deploy:deploy-file "-DgroupId=com.tfjybj" "-DartifactId=metaversePro-backend" "-Dversion=1.0-SNAPSHOT" "-Dpackaging=jar" "-Dfile=E:\Dynamic Time Programma\metaversePro-backend\metaversePro-gateway\target\metaversePro-gateway-1.0-SNAPSHOT.jar" "-DpomFile=E:\Dynamic Time Programma\metaversePro-backend\metaversePro-gateway\pom.xml"  "-Durl=http://xxxx/repository/tfjy-snapshot-hosted/" "-DrepositoryId=tfjy-snapshot-hosted"

結果のスクリーンショット:
ここに画像の説明を挿入

リモート リソース ライブラリをチェックインすると、アップロードされたリソースがアップロードされていることがわかります。
ここに画像の説明を挿入


問題記録

1. プロジェクトで目標 org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy-file (default-cli) を実行できませんでした アーティファクトのデプロイに失敗しました: ステータス コード 401 でアーティファクトを転送できませんでした

ここに画像の説明を挿入
解決策: 通常、本人確認資格情報は渡されません.settings.xml 構成の nexus のアカウント パスワードが正しいかどうか、使用されている settings.xml ファイルが正しいかどうか、および他の settings.xml ファイルが使用されているかどうかを確認します。

2. ローカル リポジトリからアーティファクトをデプロイできない

ここに画像の説明を挿入
解決策: Maven の deploy:deploy-file コマンド。このメソッドは、インストールする jar と pom がローカル リポジトリのディレクトリにある場合、このコマンドはエラーになることに注意してください (ローカル リポジトリからアーティファクトをデプロイできません。 ..)、解決策:インストールするjarとpomを別のディレクトリにコピーしてからインストールします。ローカルの倉庫ディレクトリにない限り、問題ありません。

3.Maven报错-指定した目標にはプロジェクトを実行する必要がありますが、このディレクトリにはPOMがありません…

ここに画像の説明を挿入
回避策: コマンドを二重引用符 ("") で囲みます。

例:

mvn deploy:deploy-file "-DgroupId=com.tfjybj" "-DartifactId=metaversePro-backend" "-Dversion=1.0-SNAPSHOT" "-Dpackaging=jar" "-Dfile=E:\Dynamic Time Programma\metaversePro-backend\metaversePro-gateway\target\metaversePro-gateway-1.0-SNAPSHOT.jar" "-DpomFile=E:\Dynamic Time Programma\metaversePro-backend\metaversePro-gateway\pom.xml"  "-Durl=http://xxxx/repository/tfjy-snapshot-hosted/" "-DrepositoryId=tfjy-snapshot-hosted"

参照リンク

ここに画像の説明を挿入


要約する

Maven の公式 Web サイトによると、maven プラグインを介してリモート リポジトリにデプロイするには、主に 2 つの方法があり、1 つはプロジェクトが Maven を統合し、Maven の deploy:deploy を使用して実装できる方法であり、もう 1 つは、プロジェクトが Maven を統合しない方法です。コマンド プロンプトで使用できます deploy:deploy-file コマンドを使用して実現します。

おすすめ

転載: blog.csdn.net/wangwei021933/article/details/129808219