2013-05-29 111 views
0

今天我配置的Maven插件戰爭這樣的:如何用類路徑資源配置Maven插件?

<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-war-plugin</artifactId> 
<configuration> 
    <webXml>${basedir}/../common/WEB-INF/web.xml</webXml> 
</configuration> 

這讓我分享幾個項目之間的web.xml文件。 這種方法的問題是我的Maven項目不是自包含的。它取決於文件系統上的相對路徑。

是否有可能做到這樣的事情? :

<webXml>classpath:com/mycompany/common/web.xml</webXml> 

當然,使該文件在插件的類路徑中可用。

由於

+0

你可以使用絕對路徑,如 「d:\ dev的」 –

+0

嘗試下構建添加文件位置/資源 \t \t \t \t \t \t \t \t \t ... \t \t \t Lavanya

回答

1

第一步是創建與含有web.xml包裝類型jar專用Maven的模塊。我們稱之爲com.mycompany:common。

是否有可能做到這樣的事情? :

<webXml>classpath:com/mycompany/common/web.xml</webXml> 

你試過即你肯定知道這是行不通的?如果是這樣,我想你必須使用領先的'/'(/ com/...)。

當然,使該文件在 插件的類路徑中可用。

那很簡單,然後......只需添加一個依賴到com.mycompany:common以使其在類路徑中可用。當然,它必須在你的Maven倉庫中可用。

如果classpath:不工作,我真的不知道我自己了,你可以使用maven-dependency-plugin從JAR解壓web.xml,以使其可在maven-war-plugin

的pom.xml

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>unpack-web-xml</id> 
     <phase>..any phase before packaging..</phase> 
     <goals> 
     <goal>unpack</goal> 
     </goals> 
     <configuration> 
     <artifactItems> 
      <artifactItem> 
      <groupId>com.mycompany</groupId> 
      <artifactId>common</artifactId> 
      <version>1.0</version> 
      <outputDirectory>...dir you'll use for the war plugin later...</outputDirectory> 
      <includes>/com/mycompany/common/web.xml</includes> 
      </artifactItem> 
     </artifactItems> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 
+0

謝謝,我可以使用依賴插件。注意:類路徑:不起作用(至少對於戰爭插件),它試圖在文件系統上找到它。 – PeeWee2201