2012-12-05 95 views
3

我想弄清楚如何從父poms插件管理配置maven war插件。 下面是兩個樣本poms。通過這種方式,戰爭兒童項目的創建與版本附在戰爭名稱的末尾,儘管我試圖用artifactId創建戰爭。如何從插件管理更改maven war插件的配置?

如果我將配置元素複製到子pom中,那麼僅根據預期使用artifactId創建戰爭。

那麼,我在這裏失蹤了什麼?我認爲插件管理部分只是爲了這種東西?

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>deneme</groupId> 
<artifactId>parent</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>pom</packaging> 

<build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.3</version> 
       <configuration> 
        <warName>${project.artifactId}</warName> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
</build> 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<artifactId>child</artifactId> 
<packaging>war</packaging> 
<version>0.0.1-SNAPSHOT</version> 
<name>child Maven Webapp</name> 
<url>http://maven.apache.org</url> 

<parent> 
    <groupId>deneme</groupId> 
    <artifactId>parent</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
</parent> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build> 

+0

是你的父母和多模塊構建的孩子組成部分? – khmarbaise

+1

您是否通過幫助檢查過:effective-pom? – khmarbaise

+0

我的實際項目就像樣本,父母寶,有一些常見的依賴和插件以及多個子項目。 –

回答

1

如果您需要更改最終war文件的名稱由行家創建,你需要使用finalName標籤在build喜歡。

<build> 
    <directory>target</directory> 
    <outputDirectory>target/classes</outputDirectory> 
    <finalName>${artifactId}-${version}</finalName> 
    <testOutputDirectory>target/test-classes</testOutputDirectory> 
    <sourceDirectory>src/main/java</sourceDirectory> 
    .... 
</build> 

Check this maven reference page

+0

最終名稱只會改變創建到目標文件夾中的名稱,而不會更改到maven存儲庫中的名稱。 – khmarbaise

+0

然後再次,如果我在父母中使用finalName它對兒童戰爭名稱沒有任何影響,如果我將它複製到子POM然後戰爭名稱更改... –