1

ビルド中にインストールする必要があるリポジトリにないサードパーティの jar がいくつかあります。Ant プラグインを使用して、生成された jar と pom を projects/lib フォルダーからローカル リポジトリにコピーしようとしています。

私の src/main/lib ディレクトリには、次のフォルダー構造が含まれています com/oracle/ojdbc14/10.2/ojdbc.jar、ojdbc.pom

<plugin> 
            <groupId>org.apache.maven.plugins</groupId> 
            <artifactId>maven-antrun-plugin</artifactId> 
            <version>1.7</version> 
            <executions> 
                <execution> 
                    <phase>validate</phase> 
                    <goals> 
                        <goal>run</goal> 
                    </goals> 
                    <configuration> 
                        <tasks> 
                            <copy todir="${settings.localRepository}" >  
                                <fileset dir="${basedir}/src/main/lib/" includes="**"/>  
                            </copy>
                        </tasks> 
                    </configuration> 
                </execution> 
            </executions> 
        </plugin> 

しかし、mvn install を実行すると、次のメッセージで失敗します

Failure to find com.oracle:ojdbc14:jar:10.2.0.3.0

依存関係に関するチェックが行われる前に、ant からのコピー コマンド (検証フェーズ) が実行されるのはなぜですか?

4

2 に答える 2

3

申し訳ありませんが、これは完全に最悪です。このサードパーティのものをある種の内部またはプライベート Maven リポジトリに本当にデプロイできない場合、私がこれまでに見つけたそのようなことを行う最善の方法はinstall:install-file、これらすべての jar でゴールを使用することです。そのために 2 つのシェル スクリプト (Windows および Linux 用) を作成し、それらをbootstrapディレクトリ内 (またはこのようなもの) で SCM によって共有しました。これらのアーティファクトはローカルの Maven リポジトリで解決できるため、すべての新しい開発者は一度これを行う必要があることに注意してください。

install:install-file目標の詳細については、こちらをご覧ください: http://maven.apache.org/plugins/maven-install-plugin/install-file-mojo.html

于 2012-04-11T20:05:25.387 に答える
2

リポジトリ マネージャーを取得し、そこにアーティファクトをインストールします。それ以外はすべて、リポジトリ マネージャーをインストールして使用するよりもはるかに侵略的で厄介なハックです。Nexus、Artifactory、または Archiva を見て、ビルド パフォーマンスの向上、サードパーティ ライブラリの使いやすさ、アーティファクトを内部で共有する機能など、それを使用することによるすべてのメリットを享受してください。

于 2012-04-11T20:49:32.847 に答える