Apache Maven 3.1.0のクリーンインストールとJava 1.7を使用して、JavaライブラリをローカルMavenリポジトリに追加しようとしています。 Javaアーカイブファイルが追加された方法は次のとおりです。
mvn install:install-file \
-DgroupId=net.sourceforge.ant4x \
-DartifactId=ant4x \
-Dversion=0.3.0 \
-Dfile=ant4x-0.3.0.jar \
-Dpackaging=jar
これにより、次のディレクトリ構造が作成されました。
$HOME/.m2/repository/net/sourceforge/ant4x/
├── 0.3.0
│ ├── ant4x-0.3.0.jar.lastUpdated
│ └── ant4x-0.3.0.pom.lastUpdated
└── ant4x
├── 0.3.0
│ ├── ant4x-0.3.0.jar
│ ├── ant4x-0.3.0.pom
│ └── _remote.repositories
└── maven-metadata-local.xml
プロジェクトのpom.xml
ファイルは、次のように依存プロジェクト(上記のツリー)を参照します。
<properties>
<Java-version>1.5</Java-version>
<net.sourceforge.ant4x-version>0.3.0</net.sourceforge.ant4x-version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
...
<dependency>
<groupId>net.sourceforge</groupId>
<artifactId>ant4x</artifactId>
<version>${net.sourceforge.ant4x-version}</version>
<scope>provided</scope>
</dependency>
mvn compile
を実行した後、次のエラーが返されました( Pastebinの完全ログ ):
[ERROR] Failed to execute goal on project ant4docbook: Could not resolve dependencies for project net.sourceforge:ant4docbook:jar:0.6-SNAPSHOT: Failure to find net.sourceforge:ant4x:jar:0.3.0 in http://repo.maven.Apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]
documentation は、存在する可能性のある多くの問題を示していますが、これらのいずれも当てはまらないようです。
ドキュメントに従って、私は次を試しました:
cp /opt/Apache-maven-3.1.0/conf/settings.xml $ HOME/.m2 /。
$ {user.home} /。m2/repository
また、次のコマンドも試しました。
mvn -U
mvn clear -U
Maven 3.0.5を使用してみましたが、それも失敗しました。
ダウンロードできないライブラリを探すのではなく、Mavenにローカルバージョンのライブラリを使用させるにはどうすればよいですか?
問題を解決しなかった関連する質問と情報:
変化する:
<!-- ANT4X -->
<dependency>
<groupId>net.sourceforge</groupId>
<artifactId>ant4x</artifactId>
<version>${net.sourceforge.ant4x-version}</version>
<scope>provided</scope>
</dependency>
に:
<!-- ANT4X -->
<dependency>
<groupId>net.sourceforge.ant4x</groupId>
<artifactId>ant4x</artifactId>
<version>${net.sourceforge.ant4x-version}</version>
<scope>provided</scope>
</dependency>
net.sourceforge
のgroupId
が間違っていました。正しい値はnet.sourceforge.ant4x
です。
スコープ<scope>provided</scope>
を使用すると、jarが実行時に利用可能になることを伝える機会が与えられるため、バンドルしないでください。コンパイル時に必要ないという意味ではないため、mavenはそれをダウンロードしようとします。
今、私は思う、以下のメイヴンアーティファクトはまったく存在しません。 Googleで検索しようとしましたが、見つかりませんでした。したがって、この問題が発生しています。
groupId
を<groupId>net.sourceforge.ant4x</groupId>
に変更して、最新のjarを取得します。
<dependency>
<groupId>net.sourceforge.ant4x</groupId>
<artifactId>ant4x</artifactId>
<version>${net.sourceforge.ant4x-version}</version>
<scope>provided</scope>
</dependency>
この問題の別の解決策は次のとおりです。
http:// localhost/repo はローカルリポジトリURLです。
<repositories>
<repository>
<id>wmc-central</id>
<url>http://localhost/repo</url>
</repository>
<-- Other repository config ... -->
</repositories>