2012-11-01 48 views
2

我得到了一個liferay-portlet項目,其中包含一個我想成爲原型的示例應用程序/ portlet。在項目中有一個文件夾,其中包含兩個*.launch文件來重新部署webapp。雙方都有以下行,我有麻煩:如何在Maven原型中包含Maven啓動配置?

<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:/rawportlet}"/> 

其中「rawportlet」是該項目的名稱。如果我手動將其更改爲${artifactId},則在使用原型創建項目時,此變量未解析。在項目生成期間解決這個變量會很好。

有沒有辦法做到這一點?還是解決方法?在此先感謝您的幫助。

回答

1

解決方法:編寫用戶在使用原型之後可以運行的maven目標。所以步驟將是(例如):

  1. 從原型生成項目

    mvn archetype:generate -DarchetypeCatalog=local

  2. 做一些代後的清理(執行中項目的基本目錄)

    mvn antrun:run

所以我的c頌歌因爲這是在原型「的pom.xml」:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <executions> 
     <execution> 
      <id>default-cli</id> 
      <goals> 
       <goal>run</goal> 
      </goals> 
      <configuration> 
       <tasks> 
       <replace token= "rawportlet" value="${artifactId}" dir="runConfigs">         
        <include name="**/*.launch"/> 
       </replace> 
       </tasks> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

的「runConfigs」目錄是*.launch文件存儲。

貸:

Full search and replace of strings in source files when copying resources

Maven, configure specific goal

0

我有這個同樣的問題,我使用了不同的解決方案,工作好(但也不是完美的)。

在您的啓動配置中使用value="${workspace_loc}/${artifactId}"

只要人們在工作區的根目錄下創建一個原型,gen就會生效。這比我選擇的答案更適合我,因爲運行該後期處理需要另一個啓動配置(這有點失敗了整個目的)。