1

私はこのMavenに慣れていないので、ローカルリポジトリに大きな問題があります。

サードパーティのjarファイルを追加したいのですが、これに対処するには、次のようなものがあります。

        <dependency>
            <groupId>com.thirdParty</groupId>
            <artifactId>thirdParty</artifactId>
            <version>4.0.2</version>
            <scope>system</scope>
            <systemPath>${basedir}/lib/thirdParty_4_0_2/thirdParty.jar</systemPath>
        </dependency>

そして、それは素晴らしい働きをしていますが、私はいくつかの警告を受けました、そして私はこの警告を取り除きたいです。

[WARNING] Some problems were encountered while building the effective model for com.thirdParty.connector:thirdParty:mule-module:1.0
[WARNING] 'dependencies.dependency.systemPath' for com.thirdParty:thirdParty:jar should not point at files within the project directory, ${basedir}/lib/thirdParty_java_client_4_0_2/thirdParty.jar will be unresolvable by dependent projects @ line 239, column 20

その代わりに、Mavenローカルリポジトリを作成し、そこにすべてのサードパーティjarを追加してから、XMLにリポジトリを追加して、それらを呼び出すことができると聞きました。

だから私は次のようなものを持っています:

    <repository>
        <id>local-maven-repository</id>
        <name>local-maven-repository</name>
        <releases>
            <enabled>true</enabled>
            <checksumPolicy>ignore</checksumPolicy>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <url>file://${project.basedir}/../../local-maven-repository</url>
    </repository>

そして、local-maven-repositoryの中には次のようなものがあります:

local-maven-repository
|-- com 
|   |-- thirdparty
|       |-- sdk
|           | -- 4.0.0
|                | thirdParty-4.0.0.jar
|                | thirdParty-4.0.0.pom

そして、私はこのエラーを受け取っています。

[ERROR] Failed to execute goal on project thirdParty: Could not resolve dependencies for project com.thirdParty.connector:thirdParty:mule-module:1.0: Failure to find com.thirdParty:thirdParty:jar:4.0.2 in file:///Users/moises.vega/Developer/Telstra/telstra-thunder/connectors/thirdParty/../../local-maven-repository was cached in the local repository, resolution will not be reattempted until the update interval of local-maven-repository has elapsed or updates are forced -> [Help 1]

誰かが私にこの問題に取り組む正しい方向を教えてもらえますか?

ありがとう。

4

2 に答える 2

1

システムの依存関係を使用しないでください。ディスクにリポジトリを作成しようとしないでください。

Maven セントラルにないものが必要な場合は、(できれば) Nexus または Archiva または Artifactory をデプロイし、そこにデプロイします。それができない場合は、install:install-file で ~/.m2/repository に入れてください。

于 2012-09-28T19:30:45.723 に答える
0

Maven の優れたプラクティスの観点からは、どちらのソリューションも良くありません。

個人的には、あなたが言及した最初の解決策を使用し、警告を受け入れます。${project.basedir} が別のディレクトリに解決されるため、Maven は (何らかの理由で) 依存プロジェクトがある場合、そのプロジェクトは jar ファイルを見つけることができないと文句を言います。そして、これは、2 番目の作業を行うことができたとしても、両方のソリューションに適用されます。

ローカルの Maven リポジトリ (Nexus や Artifactory など)がない場合、ビルド プロセスの一部として、そのスクリプトを実行してから実行する必要があるため、2 番目に良い解決策は、 . mvn install:install-fileMaven コマンドのいずれか。これは pom ファイルから行うこともできますが、少し複雑で、より多くのセットアップが必要です。jar をインストールするには、マルチモジュール プロジェクトが必要です。実行する最初のモジュールは、インストール プラグインを実行する必要があります。これを行うには、依存関係をインストールするモジュールに他のすべてのサブモジュールを依存させます。

于 2012-09-28T19:39:05.580 に答える