ソースコードの処理にいくつかのレガシースクリプトを使用するプロジェクトがあります。私はそれを取り除くことができないので、私はそれをmavenから呼びたい。mavenに依存するjarの場所を取得します
問題は、引数としてjarファイルの場所を渡す必要があることです。私はこのjarファイルをpom.xmlの依存関係としてリストしました。 jarファイルの絶対位置をこのスクリプトに渡す方法はありますか?
ソースコードの処理にいくつかのレガシースクリプトを使用するプロジェクトがあります。私はそれを取り除くことができないので、私はそれをmavenから呼びたい。mavenに依存するjarの場所を取得します
問題は、引数としてjarファイルの場所を渡す必要があることです。私はこのjarファイルをpom.xmlの依存関係としてリストしました。 jarファイルの絶対位置をこのスクリプトに渡す方法はありますか?
これは理想的な任意の手段によってではありませんが、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
を私は良く似た質問に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>
これは明らかに、これはantrunプラグインを使用する場合にのみ機能します。 – santiagozky
ありがとうございました。私はそれ以外に多くの選択肢がないと思う。 – santiagozky
ええ、あなたがやっていることは本当に非凡なので、これは全く理想的ではない。より良い計画は、それらのレガシースクリプトを作成して、もはやそれらを必要としないようにすることです) – Michael