2009-09-09 21 views
9

seamを使用してアプリケーションを開発し、weblogic 10.1MPで実行しています maven2を使用してアプリケーションをビルドし、jboss-seams-wls-compatible.jarファイルが見つからないリポジトリ。 このjarファイルをどのようにローカルフォルダからターゲット/ WEB-INF/libフォルダにコピーできますか?Mavenローカルフォルダからjarファイルをコピーするには

答えて

3

インストールプラグインのinstall-file goalを使用してjarファイルをローカルリポジトリにインストールすると、通常と同じようにアーティファクトへの依存関係を宣言でき、warプラグインによって自動的にパッケージ化されます。

リモートリポジトリがある場合は、deployプラグインのdeploy-file goalを使用して、そのリポジトリにjarをデプロイすることができます。すると、チームメイトもjarにアクセスできます。

詳細については、Jiraがあり、このアーティファクトを中央で利用できるようにしています。


あなたのコメントに基づいて更新してください。私はそれが良い習慣ではないので、これを行うことをお勧めしますが、プロジェクトのソース構造内にjarをホストする必要がある場合は、src/main/libのように置いて、antrunプラグインを使用してWEB-INF/lib。

例えば:

<plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <executions> 
     <execution> 
     <phase>process-resources</phase> 
     <configuration> 
      <tasks> 
      <copy todir="${project.build.directory}/WEB-INF/lib"> 
       <fileset dir="src/main/lib"/> 
      </copy> 
      </tasks> 
     </configuration> 
     <goals> 
      <goal>run</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 
+0

私の意図はローカルリポジトリを作成することではありません。 Mavenを使用して自分のsrcやリソース、または他のフォルダからターゲットフォルダにこのjarをコピーする方法はありますか? – user118802

+0

Mavenを使用している場合は既にローカルリポジトリがあります。作成する必要はありません。これはデフォルトでは〜/ .m2/repository –

+0

にあります@私のアプローチはボックスのディレクトリ構造に縛られていません。antrunの提案よりもそれほど簡単です。 $ {basedir}はMavensによって定義されているので、プロジェクトのディレクトリ構造に縛られているだけです。 –

4

のMavenでこれを行うための正しい方法は、(リモートまたはローカル)リポジトリにそれをインストールすることです。

ただし、ローカルリポジトリがあまり好ましくない場合があります。たとえば、たくさんのマシンでMavenを実行し、手動でインストールする必要はありません。

これらのまれなケースでは、JARをバージョンコントロールにチェックするアンチパターンを使用します。別のステップを追加してJARの別のコピーを作成するので、ローカルリポジトリにインストールするのは面倒ではありません。 $ {BASEDIR}のMavenによって定義されます:私はちょうど

  <dependency> 
        <groupId>local</groupId> 
        <artifactId>homeless-jar</artifactId> 
        <version>1.0</version> 
        <scope>system</scope> 
        <systemPath>${basedir}/lib/homeless.jar 
        </systemPath> 
      </dependency> 

EDITは、このように直接JARを使用しています。これは、pom.xmlがあるMavenプロジェクトのベースディレクトリです。私の例は明確ではありませんでした。この1つを参照してください、

  <dependency> 
        <groupId>any-id</groupId> 
        <artifactId>any-name</artifactId> 
        <version>1.0</version> 
        <scope>system</scope> 
        <systemPath>${basedir}/src/main/lib/homeless.jar 
        </systemPath> 
      </dependency> 
+0

私のプロジェクトにどのような基盤があるのか​​を私はどのように知っていますか? –

+0

編集内容を見る................ –

関連する問題