2012-03-05 14 views
1

ソースコードの処理にいくつかのレガシースクリプトを使用するプロジェクトがあります。私はそれを取り除くことができないので、私はそれをmavenから呼びたい。mavenに依存するjarの場所を取得します

問題は、引数としてjarファイルの場所を渡す必要があることです。私はこのjarファイルをpom.xmlの依存関係としてリストしました。 jarファイルの絶対位置をこのスクリプトに渡す方法はありますか?

答えて

1

これは理想的な任意の手段によってではありませんが、Mavenのからスクリプトを呼び出し、パラメータとしてこれを渡すことができます:

アーティファクトへのパスは、グループIDで構成されたパスである
${settings.localRepository}/<path to artifact> 

あなたが望むアーティファクトID。例では、あなたはMavenのジャー・プラグインのバージョン2.2への参照を望んでいた場合、あなたはこの使用したい:

${settings.localRepository}/org/apache/maven/plugins/maven-jar-plugin/2.2/maven-jar-plugin-2.2.jar 
+0

ありがとうございました。私はそれ以外に多くの選択肢がないと思う。 – santiagozky

+0

ええ、あなたがやっていることは本当に非凡なので、これは全く理想的ではない。より良い計画は、それらのレガシースクリプトを作成して、もはやそれらを必要としないようにすることです) – Michael

0

を私は良く似た質問にPascal Thivent's answerが好きです。依存関係は${maven.dependency.junit.junit.jar.path}表記で参照できます。パスカルには、答えのサンプルが含まれています:

<?xml version="1.0" encoding="UTF-8"?> 
<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.stackoverflow</groupId> 
    <artifactId>q2359872</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <name>q2359872</name> 
    <properties> 
    <my.lib>${maven.dependency.junit.junit.jar.path}</my.lib> 
    </properties> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    </dependencies> 
    <build> 
    <plugins> 
     <plugin> 
     <artifactId>maven-antrun-plugin</artifactId> 
     <executions> 
      <execution> 
      <phase>process-resources</phase> 
      <configuration> 
       <tasks> 
       <echo>${my.lib}</echo> 
       </tasks> 
      </configuration> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
</project> 
+0

これは明らかに、これはantrunプラグインを使用する場合にのみ機能します。 – santiagozky

関連する問題