web-dev-qa-db-ja.com

Mavenexecプラグインでjavaagent引数を指定します

私は次のような同様の質問があります: この前の質問

Netbeansを使用してJavaプロジェクトをMavenに変換しています。プログラムを起動するために必要なコマンドライン引数の1つは、-javaagent設定です。例:.

-javaagent:lib/eclipselink.jar

Netbeansに開発用のアプリケーションを起動させようとしています(最終的なデプロイメント用にカスタム起動スクリプトを作成します)

Mavenを使用してEclipselinkの依存関係を管理しているため、Eclipselinkjarファイルの正確なファイル名がわからない場合があります。これは、pom.xmlファイルで構成したバージョンに基づくeclipselink-2.1.1.jarのようなものである可能性があります。

正確なeclipselinkファイル名をコマンドライン引数に渡すようにexec-maven-pluginを設定するにはどうすればよいですか?

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <configuration>
       <executable>Java</executable>
           <arguments>
               <argument>-Xmx1000m</argument>
               <argument>-javaagent:lib/eclipselink.jar</argument> <==== HELP?
               <argument>-classpath</argument>
               <classpath/>
               <argument>my.App</argument>
           </arguments>
    </configuration>
</plugin>
14
David I.

私はうまくいくように見える方法を考え出しました。

まず、 maven-dependency-plugin を設定して、常に「プロパティ」ゴールを実行します。

<plugin>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.5.1</version>
    <executions>
        <execution>
            <id>getClasspathFilenames</id>
            <goals>
                <goal>properties</goal>
            </goals>
        </execution>
     </executions>
</plugin>

後で、設定したプロパティを使用します ここに記載されています 次の形式で

groupId:artifactId:type:[classifier]

例えば.

<argument>-javaagent:${mygroup:eclipselink:jar}</argument>
14
David I.

Eclipseリンクバージョンのプロパティを定義し、<dependency>とexecプラグインでそのプロパティを使用するだけです。

    <properties>
        <eclipselink.version>2.4.0</eclipselink.version>
    </properties>
    <dependency>
        <groupId>org.Eclipse.persistence</groupId>
        <artifactId>eclipselink</artifactId>
        <version>${eclipselink.version}</version>
    </dependency>
    ...
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>exec-maven-plugin</artifactId>
      <configuration>
      <executable>Java</executable>
       <arguments>
           <argument>-Xmx1000m</argument>
           <argument>-javaagent:lib/eclipselink-${eclipselink.version}.jar</argument>
           <argument>-classpath</argument>
           <classpath/>
           <argument>my.App</argument>
       </arguments>
     </configuration>
   </plugin>
2
ben75

maven-dependency-pluginとexec-maven-pluginはノードの下に配置する必要があります。そうしないと、機能しません。

0
tearrain