Maven: свойства не замещают
-
26-09-2019 - |
Вопрос
Я использую плагин Maven для Installing4J в моем проекте, расположенный здесь. Отказ Этот плагин позволяет передавать переменные для установки4j, используя <compilerVariables>
раздел. Вот соответствующий раздел моего пома:
<plugin>
<groupId>com.google.code.maven-install4j</groupId>
<artifactId>maven-install4j-plugin</artifactId>
<version>0.1.1</version>
<configuration>
<executable>${devenv.install4jc}</executable>
<configFile>${basedir}/newinstaller/ehd.install4j</configFile>
<releaseId>${project.version}</releaseId>
<attach>false</attach>
<skipOnMissingExecutable>false</skipOnMissingExecutable>
<compilerVariables>
<property>
<name>m2_home</name>
<value>${settings.localRepository}</value>
</property>
</compilerVariables>
</configuration>
</plugin>
Проблема в том, что $ {settings.localrepository} не заменяется фактическим каталогом, когда я запускаю плагин. Вот скрипт командной строки, который создает 4J:
[INFO] Running the following command for install4j compile: /bin/sh -c /home/zach/install4j/bin/install4jc --release=9.1-SNAPSHOT --destination="/home/zach/projects/java/ehdtrunk/target/install4j" -D m2_home=${settings.localRepository} /home/zach/projects/java/ehdtrunk/newinstaller/ehd.install4j
Это вина плагина? Если это так, то что нужно изменить, чтобы позволить замене произойти?
Решение 2
Рассматриваемый плагин принимает параметр, который является экземпляром свойств. По какой причине выражения, используемые для настройки экземпляров свойств, не оцениваются автоматически. Я должен был изменить плагин для использования org.apache.maven.plugin.pluginparameterexputionEvaluator для оценки $ {settings.localrepository}.
Другие советы
Следующий POM просто работает для меня (с Maven 2.2.1):
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.stackoverflow</groupId>
<artifactId>Q2828732</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
...
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>validate</phase>
<configuration>
<tasks>
<echo>${settings.localRepository}</echo>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
И работа MVN Process-Ressources производит следующий выход:
$ MVN Validate [info] сканирование для проектов ... [info] ---------------------------------------- ------------------------------------------- [info] Строительство q2828732 [info] целевой сегмент: [ Validate] [info] ------------------------------------------------------ ------------------------------- [info] [antrun: запустить {исполнение: по умолчанию}] [info] выполнение задач [echo] / home /Pascal/.m2/repository [info] Выполненные задачи [info] ---------------------------------------- ------------------------------------------ [info] Создать успешную [информацию] ------ ------------------------------------------------------- ------------------- [info] Общее время: 2 секунды [Информация] Закончено по адресу: Thue 13 мая 19:28:38 CEST 2010 [INFO] Окончательная память: 3M / 54M [ИНФОРМАЦИЯ] ----------------------------------------------- ----------------------------
Вышеприведенная работа для вас? Вы используете M2ECLIPSE? Может быть связано с MngeClipse-299.?