2013-04-02 32 views
1

我有一個POM文件,它正在將已編譯的EAR文件複製到一個linux目錄。如何指示Maven在Linux或Windows上將編譯的EAR複製到OS特定的目錄?

我的意思是爲我的Windows開發人員做同樣的事情,而不需要他們手動調整輸出目錄。因此,maven資源插件應該確定操作系統的路徑(Linux的/ projects/shared_ears和Windows的D:\ projects_bin \ shared_ears)。可以用maven-resources-plugin來完成嗎?說,不使用Maven的螞蟻運行插件?

僅適用於Linux OS的現有複製命令下。

感謝您的任何聰明的想法。

<plugin> 
    <artifactId>maven-resources-plugin</artifactId> 
    <version>2.5</version> 
    <executions> 
     <execution> 
      <id>copy-resources</id> 
      <phase>install</phase> 
      <goals> 
       <goal>copy-resources</goal> 
      </goals> 
      <configuration> 
       <outputDirectory>/projects/shared_ears</outputDirectory> 
       <resources> 
        <resource> 
         <directory>${project.build.directory}</directory> 
         <includes> 
          <include>project-${project.version}.ear</include> 
         </includes> 
        </resource> 
       </resources> 
       <overwrite>true</overwrite> 
      </configuration> 
     </execution> 

    </executions> 
</plugin> 

回答

1

要做到這一點,最簡單的方法是使用maven profiles

一種方法來激活一個配置文件是使用OS(操作系統)。你必須定義一個屬性。比方說,<ear.directory>/projects/shared_ears</ear.directory>和插件配置使用該屬性:

 <configuration> 
      <outputDirectory>${ear.directory}</outputDirectory> 
      <resources> 
       <resource> 
        <directory>${project.build.directory}</directory> 
        <includes> 
         <include>project-${project.version}.ear</include> 
        </includes> 
       </resource> 
      </resources> 
      <overwrite>true</overwrite> 
     </configuration> 

現在,你可以在2個不同的配置文件指定此屬性和激活一個配置文件或基於當前操作系統上的其他。這裏是如何做到這一點:

<profiles> 
    <profile> 
    <id>WinProfile</id> 
    <activation> 
     <os> 
     <family>windows</family> 
     </os> 
    </activation> 
    <properties> 
     <ear.directory>D:\projects_bin\shared_ears</ear.directory> 
    </properties> 
    ... 
    </profile> 
    <profile> 
    <id>UnixProfile</id> 
    <activation> 
     <os> 
     <family>unix</family> 
     </os> 
    </activation> 
    <properties> 
     <ear.directory>/projects/shared_ears</ear.directory> 
    </properties> 
    ... 
    </profile> 
</profiles> 

有關配置文件和操作系統檢測其它附加信息here

+0

激活是關鍵!謝謝你本! – feder

相關問題