Знаток: свойства, не заменяемые

Я использую плагин знатока для install4j в моем проекте, расположенном здесь. Тот плагин позволяет Вам передать переменные install4j с помощью раздел. Вот соответствующий раздел моего англичанина:


    com.google.code.maven-install4j
    maven-install4j-plugin
    0.1.1
    
        ${devenv.install4jc}
        ${basedir}/newinstaller/ehd.install4j
        ${project.version}
        false
        false
        
            
                m2_home
                ${settings.localRepository}
            
        
    

Проблема состоит в том, что $ {settings.localRepository} не заменяют с фактическим каталогом, когда я выполняю плагин. Вот сценарий командной строки, который генерирует install4j:

[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

Действительно ли это - отказ плагина? Если так, что потребности измениться, чтобы позволить замене происходить?

1
задан Pascal Thivent 14 May 2010 в 14:17
поделиться

2 ответа

Рассматриваемый плагин принимает параметр, который является экземпляром Properties. По какой-то причине выражения, используемые для настройки экземпляров Properties, не оцениваются автоматически. Мне пришлось изменить плагин, чтобы он использовал org.apache.maven.plugin.PluginParameterExpressionEvaluator для оценки ${settings.localRepository}.

1
ответ дан 3 September 2019 в 00:33
поделиться

Следующий 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] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Q2828732
[INFO]    task-segment: [validate]
[INFO] ------------------------------------------------------------------------
[INFO] [antrun:run {execution: default}]
[INFO] Executing tasks
     [echo] /home/pascal/.m2/repository
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Thu May 13 19:28:38 CEST 2010
[INFO] Final Memory: 3M/54M
[INFO] ------------------------------------------------------------------------

Работает ли вышеупомянутое для вас? Вы используете M2Eclipse? Может ли это быть связано с MNGECLIPSE-299 ?

1
ответ дан 3 September 2019 в 00:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: