2012-04-11 4 views
1

ビルド中にインストールする必要があるリポジトリにないサードパーティのjarファイルがあります。生成されたjarとpomをprojects/libフォルダからローカルリポジトリにコピーしようとしていますmaven install paven内からインストールする

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

<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> 

をojdbc.pomしかし、私はMVNの実行インストール時にアリ(検証フェーズ)からのコピーコマンド任意のチェックの前に実行がに関して行われない理由、それは以下のMSG

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

で失敗します依存関係

答えて

3

は、リポジトリマネージャを取得し、そこにアーティファクトをインストール:install:install-file目標の詳細については、この時

ルック。他のすべては、リポジトリマネージャをインストールして使用するよりはるかに侵略的で面倒な醜いハックです。 Nexus、Artifactory、Archivaを見て、ビルドパフォーマンスの向上、サードパーティ製のlibsの使いやすさ、内部でのアーティファクトの共有などの利点をすべて利用してください。

3

申し訳ありませんが、これは完全にうんざりです。 本当には、このサードパーティのものを何らかの種類の内部または非公開のMavenリポジトリにデプロイできない場合、私が今までに見つけたことを行う最良の方法は、これらすべてのjarでinstall:install-fileの目標を使用することです。私たちはそれのための2つのシェルスクリプト(WindowsとLinux用)を作成し、bootstrapディレクトリ内のSCM(またはこれと同じように)で共有しました。これらの成果物はローカルのMavenリポジトリで解決できるので、新しい開発者は一度これを行う必要があることに注意してください。 http://maven.apache.org/plugins/maven-install-plugin/install-file-mojo.html

+0

リポジトリマネージャをインストールしない理由すべての開発者にアーティファクトを1回だけインストールしてください。すべての開発者は問題なく作業を開始できます。 – khmarbaise

関連する問題