web-dev-qa-db-ja.com

Sonatype Nexusを強制的に更新する方法は?

私はpom.xmlでonejar-maven-pluginを使用しようとしています:

<plugin>
    <groupId>org.dstovall</groupId>
    <artifactId>onejar-maven-plugin</artifactId>
    <version>1.4.4</version>
    <executions>
        <execution>
            <configuration>
                <mainClass>com.exmaple.myproj.MpPort_MpSoapPort_Client</mainClass>
                <onejarVersion>0.97</onejarVersion>
                <attachToBuild>true</attachToBuild>
                <classifier>onejar</classifier>
            </configuration>
            <goals>
                <goal>one-jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

<pluginRepositories>
    <pluginRepository>
        <id>onejar-maven-plugin.googlecode.com</id>
        <url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url>
    </pluginRepository>
</pluginRepositories>

しかし、何らかの理由で、Eclipse Mavenプラグイン(Mavenインストール)を介してビルドしようとすると、ビルドエラーが発生します。

Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository onejar-maven-plugin.googlecode.com (http://onejar-maven-plugin.googlecode.com/svn/mavenrepo)
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository central (http://repo1.maven.org/maven2)
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository central (http://repo1.maven.org/maven2)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error building POM (may not be this project's POM).


Project ID: org.dstovall:onejar-maven-plugin

Reason: POM 'org.dstovall:onejar-maven-plugin' not found in repository: Unable to download the artifact from any repository

  org.dstovall:onejar-maven-plugin:pom:1.4.4

from the specified remote repositories:
  Nexus (https://mynexus.example.com/nexus/content/repositories/central)

 for project org.dstovall:onejar-maven-plugin

したがって、手動で onejar-maven-plugin.jar をダウンロードし、コマンドラインからインストールすると、同様のエラーが発生しているようです:

C:\Users\daniel\myproj>mvn install:install-file -Dfile=onejar-maven-plugin-1.4.4.jar -DgroupId=com.jolira -DartifactId=onejar-maven-plugin -Dversion=1.4.4 -Dpackaging=jar
[INFO] Scanning for projects...
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository onejar-maven-plugin.googlecode.com (http://onejar-maven-plugin.googlecode.com/svn/mavenrepo)
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository central (http://repo1.maven.org/maven2)
Downloading: https://mynexus.example.com/nexus/content/repositories/central/org/dstovall/onejar-maven-plugin/1.4.4/onejar-maven-plugin-1.4.4.pom
[INFO] Unable to find resource 'org.dstovall:onejar-maven-plugin:pom:1.4.4' in repository central (http://repo1.maven.org/maven2)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error building POM (may not be this project's POM).


Project ID: org.dstovall:onejar-maven-plugin

Reason: POM 'org.dstovall:onejar-maven-plugin' not found in repository: Unable to download the artifact from any repository

  org.dstovall:onejar-maven-plugin:pom:1.4.4

from the specified remote repositories:
  Nexus (https://mynexus.example.com/nexus/content/repositories/central)

 for project org.dstovall:onejar-maven-plugin

私の理解では、その特定のアーティファクトを含まないNexusミラーがあるため、物事は混乱するということです。

Sonatype Nexusを強制的に再生成/メタデータのインデックスを再作成する方法 の指示に従ってみましたが、「インデックスの参照」タブにはそのようなコンテキストメニューがありません!Sonatype Nexusで。

enter image description here

here 「Nexusはクライアントがリクエストしたアーティファクトのみをキャッシュします。そのため、適切なバージョンをリクエストするためにプロジェクトpomsを設定する必要があります」と読みます。しかし、それはまさに私がやってきたことです-結果に変化はありません。

この「鶏と卵」の状況から抜け出し、このonejar-maven-plugin verを取得するにはどうすればよいですか。 1.4.4ネクサスミラーに?

(または、ローカルの.m2キャッシュに取得する方法はありますか?)

17
Withheld

ローカルリポジトリに-Uで使用できないアーティファクトに関するメタデータが含まれている場合でも、Mavenに更新と依存関係の要求を強制させることができます。

mvn clean install -U 

動作するはずです。

また、settings.xmlを変更して、中央リポジトリだけでなくパブリックグループを直接指すようにする必要があります。より多くを見つけることができます Nexusの本で

中央リポジトリには、使用しようとしているonejarプラグインがないことに注意してください。 検索結果 を確認し、groupIdcom.joiliraではなくorg.dstovallである方法を確認します

org.dstovallからonejarプラグインを本当に使用したい場合は、URLを追加する必要があります http://onejar-maven-plugin.googlecode.com/svn/mavenrepo/ Nexusへのプロキシリポジトリとして、パブリックグループに追加し、settings.xmlでパブリックグループを使用します

23
Manfred Moser