2010-05-13 66 views
1

我在我的項目中使用了一個用於install4j的maven插件,位於here。該插件允許您使用<compilerVariables>部分將變量傳遞給install4j。這是我的聚甲醛的相關章節:Maven:屬性不被替換

<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不被取代與實際目錄當我運行該插件。這是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

問題中的插件接受一個屬性實例的參數。無論出於何種原因,用於配置屬性實例的表達式都不會自動評估。我必須更改插件以使用org.apache.maven.plugin.PluginParameterExpressionEvaluator來評估$ {settings.localRepository}。

1

下POM只是對我的作品(與Maven 2.2.1):

​​

運行MVN過程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有關嗎?

+0

這是直線命令行Maven 2.而且,當在antrun插件中使用該屬性時,我會得到正確的輸出。看起來這可能是一個插件的問題。我會看看我是否知道antrun插件用這樣的屬性輸入做什麼,看看我是否可以將它應用到這個其他插件。 – UrLicht 2010-05-13 19:36:06

+0

@jobrahms *看起來它可能是插件的問題*是的,我認爲是這樣。 – 2010-05-13 19:42:07

+0

@jobrahms我用'mvn help:evaluate'測試了antrun以外的屬性,並確認它已正確解析。 – 2010-05-13 19:57:46