2012-12-05 75 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然后战争名称更改... –