でjarファイルを起動します。私のPOMのは、私は現在のプロジェクトのポストの実行フェーズの間、M2のレポ内の別のJarファイルを起動するプロジェクトを、持っているM2リポジトリ
サンプルスケルトン
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.1</version> <executions> <execution> <id>exec-one</id> <phase>verify</phase> <configuration> executable>java</executable> <arguments> <argument>-jar</argument> <argument>JarToInvoke.jar</argument> </arguments> <**workingDirectory**>/C:/path to repo</workingDirectory> </configuration> <goals> <goal>exec</goal> </goals> </execution> </executions> <dependencies> <dependency> <groupId>GroupId of JarToInvoke</groupId> <artifactId>JarToInvoke</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> </dependencies> </plugin> </plugins>
私はMavenの-EXEC-プラグインを使用してみましたが、次の問題を持ちます。
ここで、JarToInvoke依存関係を指定する必要がありますか?プロジェクト依存関係またはexec-plugin依存関係ハードコーディング作業ディレクトリ(/ C:/レポへのパス)で
、私はJarToInvokeアーティファクトを呼び出すことができています。しかし、それは良い解決策ではありません。最終的に、このプロジェクトは、異なるOSを持つどんなm/cでも実行する必要があるからです。では、プロジェクトのM2リポジトリ(既定のクラスパス)でJarToInvoke成果物を検索するためにexec-pluginを作成するにはどうすればよいですか?
作業ディレクトリのM2 repoパスをハードコーディングするうちに、JarToInvokeアーティファクトを呼び出すことができました。しかし、JarToInvoke成果物を実行している間に別の依存関係の問題が発生すると、JarToInvokeへのlog4j依存関係のいくつかが見つかりませんでした。 JarToInvokeを陰影のついた瓶にして、期待どおりに動作します。しかし、永続的なまたは良い解決策ではありません(影付きのjarサイズは35 MBです)。 exec-pluginにM2リポジトリ内の依存Jarファイルを探すように指示するにはどうすればよいですか?
ご意見をお寄せください。前もって感謝します。
貴重な情報をお寄せいただきありがとうございます。しかし、上記のようにPOMを設定した後、次の例外がスローされます。 – appu
'java.lang.reflect.InvocationTargetException \t at sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) \t at sun.reflect.NativeMethodAccessorImpl。呼び出し(NativeMethodAccessorImpl.java:39)sun.reflect.DelegatingMethodAccessorImpl.invokeで \t(DelegatingMethodAccessorImpl.java:25)java.lang.reflect.Method.invokeで \t(Method.java:597)org.codehausで \t .msojo.exec.ExecJavaMojo $ 1.run(ExecJavaMojo.java:297)\t at java.lang.Thread.run(Thread.java:662) ' – appu
@ RahulR.Prasadこれはasmライブラリとは異なるバージョンのJarを実行するときにJarToInvokeが引き込まれると予想されます。 'com.tvworks.testing.tools'クラスが必要とするasmのバージョンのexecプラグインに依存関係を明示的に追加してみてください。 – prunge