Укажите аргумент javaagent с плагином Maven exec
У меня есть аналогичный вопрос: этот предыдущий вопрос
Я конвертирую проект Java с использованием Netbeans в Maven. Чтобы запустить программу, одним из необходимых нам аргументов командной строки является параметр -javaagent. например.
-javaagent:lib/eclipselink.jar
Я пытаюсь заставить Netbeans запустить приложение для использования в целях разработки (мы напишем специальные сценарии запуска для окончательного развертывания)
Так как я использую Maven для управления зависимостями Eclipselink, я могу не знать точного имени файла Jar файла Eclipselink. Это может быть что-то вроде eclipselink-2.1.1.jar на основе версии, установленной мной в файле pom.xml.
Как мне настроить плагин exec-maven для передачи точного имени файла eclipselink в аргумент командной строки?
<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>
Ответы
Ответ 1
Я понял способ, который, кажется, работает хорошо.
Сначала настройте 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>
Ответ 2
Просто определите свойство для версии ссылки 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>
Ответ 3
maven-dependency-plugin и exec-maven-plugin должны быть помещены под node, иначе он не будет работать