web-dev-qa-db-ja.com

目標org.Apache.maven.plugins:maven-deploy-plugin:2.7:deploydefault-deployをプロジェクトで実行できませんでした

[エラー]プロジェクトでゴールorg.Apache.maven.plugins:maven-deploy-plugin:2.7:deploy(default-deploy)を実行できませんでした。アーティファクトのデプロイに失敗しました:アーティファクトを転送できませんでした戻りコード:401、ReasonPhrase:未承認。 -> [ヘルプ1]


最後に成功したビルド以降、変更はありませんでした。 settings.xml(ユーザー名とパスワード)を再確認します。pom.xml(配布管理)も確認します。

私は過去2日間からこの問題に取り組んでいます。すべてのフォーラムを通過しましたが、何も機能しません。助けてください。

4
Happy

このエラーメッセージは、マシンがNexusマシンに対して正しく認証されていないことを意味します。 MavenからNexusに送信された資格情報が正しくありません。

このメッセージを受け取ったら、通常、settings.xmlを調べて、この部分の適切な資格情報を確認する必要があります。ユーザー名とパスワードは、Nexus自体で設定されている正しいものである必要があります。

<servers>
    <server>
        <id>nexus-releases</id>
        <username>fillin</username>
        <password>fillin</password>
    </server>
</servers>

私は通常、Nexus GUIにアクセスし、それらの資格情報を使用してログインして検証しようとしますが、mvnを介して公開できるが、GUIにはログインできない資格情報を構成することは可能です。

考えられる問題の1つは、依存関係管理を使用して、「mvndeploy」ターゲットの場合にデプロイする場所を特定している場合です。このようなセクションがあります:

<distributionManagement>
    <repository>
        <id>nexus-releases</id>
        <name>releases</name>
        <url>http://myNexus/more/stuff</url>
    </repository>
</distributionManagement>

idフィールドは、settings.xmlの資格情報のIDと一致する必要があります。 IDが一致しない場合、このエラーが発生します。

もう1つの考えられる問題は、pom.xmlでmaven-deply-pluginの実行を使用している場合、構成プロパティがある可能性があることです。

<repositoryId>nexus-releases</repositoryId> 

また、settings.xmlのIDと一致しないため、エラーで失敗します。

同様に、次のような「mvn」コマンドでコマンドラインオプションを使用してデプロイする場合

-DrepositoryId=nexus-releases

settings.xmlのIDと一致しません。これも、機能しません。

3
Lee Meador

コメントセクションでの説明に続いて、このpom.xmlを実行してみてください

Mvnの目標が次のようになる場合:mvn deploy

必要なのは、pomを用意して引数を渡すことだけです。

これは使用できるpom.xmlです:

<project xmlns="http://maven.Apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.Apache.org/POM/4.0.0 http://maven.Apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.hp.Maven</groupId>
    <artifactId>Maven-Nexus</artifactId>
    <packaging>pom</packaging>
    <version>1.0.0</version>

    <properties>
        <baseNexusURL>${baseNexusURL}</baseNexusURL>
        <targetRepositoryID>${repositoryId}</targetRepositoryID>
        <package.final.name>${project.artifactId}</package.final.name>
    </properties>

        <build> 
        <plugins>
            <plugin>
                <artifactId>maven-deploy-plugin</artifactId>
                <version>2.8.2</version>
                <executions>
                    <execution>
                        <id>default-deploy</id>
                        <configuration>
                            <skip>true</skip>
                        </configuration>
                    </execution>
                    <execution>
                        <id>deploy-node-modules-artifact</id>
                        <phase>deploy</phase>
                        <goals>
                            <goal>deploy-file</goal>
                        </goals>
                        <configuration>
                            <file>${file}</file>
                            <groupId>${groupId}</groupId>
                            <artifactId>${artifactId}</artifactId>
                            <version>${version}</version>
                            <packaging>${packaging}</packaging>
                            <generatePom>true</generatePom>
                            <repositoryId>${targetRepositoryID}</repositoryId>
                            <url>${baseNexusURL}/content/repositories/${targetRepositoryID}</url>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

enter image description here