8

ツタからメイヴンに移行しています。ivyを使用して公開されたアーティファクトには多くのアーティファクトがあるため、アーティファクトフォルダー/パスの構造は次のようになります。

  1. artifactory/libs-release/[organization]/[module]/[revision]/[type]s/[module](-[classifier]).[ext]

  2. artifactory/libs-release/[organization]/[module]/[revision]/[type]s/ivy.xml

ただし、maven pom.xmlに依存関係を追加すると、依存関係の名前はのようになりますcom.abc.xyz。しかし、Mavenはパスフォルダーを調べようとしますcom/abc/xyz/が、アーティファクトにはアーティファクトがありますcom.abc.xyz/my-artifact/1.0.0/jars/my-artifact.jar

Maven(pom.xml)に、アーティファクトにあるパスを読み取って理解するように指示するにはどうすればよいですか。

ivy-maven-pluginを使用してみましたが、ローカルのm2リポジトリフォルダーにgroovy jarが必要な場合でも、一部のgroovyクラスでclassNotFoundエラーが発生します。

* わかりました、これが私たちがしたことです。フォルダを手動で作成し、makepomプラグインを使用してivy.xmlをmavenpom.xmlに変換しています。すべての提案に感謝します。

4

2 に答える 2

4

Maven を Ivy に適合させようとするのはなぜですか。Ivy は、その時点で Maven がすでに持っていたものを利用して模倣するためにそこにいました。

Ivy は Maven リポジトリを読み取ることができますが、その逆はできないため、 NexusまたはArtifactoryを使用して、独自のローカル ネットワーク (または会社) の Maven リポジトリをセットアップすることをお勧めします。次に、そこにアーティファクトを 1 つずつアップロードし、それらの Ivy ビルドを標準化して、その新しい Maven リポジトリを指すようにします。これには、最初は追加の努力が必要ですが、後で報われると信じています。

非標準のリポジトリ レイアウトを読み取るように Maven を構成する別のオプションがありますが、なぜそのルートに行きたいのでしょうか? この道を選ぶと、すべてがはるかに難しくなります。

于 2012-10-13T14:13:05.693 に答える
3

私のIvy 統合パッケージを見てください。は、jar をビルドするjar.macroと自動的にビルドされるため、特に便利です。pom.xmlマクロはjarタスクに非常に似ています。

私がやっていることは、各 jar で pom.xml を構築し、それを使用mvn deploy:deploy-fileして jar を Maven リポジトリにデプロイすることです。

mvn deploy:deploy-file -Dfile=$jar_file
    -D pomFile=pom.xml
    -D repositoryId=$repo_id
    -D url=$repo_url
于 2012-11-23T18:02:42.790 に答える