如何为maven war插件配置多个输出目录?

时间:2014-09-03 06:58:49

标签: java maven

我配置了以下maven war插件,但我只创建了一个输出目录:

     <plugin>
         <artifactId>maven-war-plugin</artifactId>
            <version>2.2</version>              
             <configuration> 
                <outputDirectory>C:\EclipseWorkspace\my_path\myPath2</outputDirectory>
              </configuration>
            <executions>
              <execution>
                <id>default-war</id>
                <phase>package</phase>
                <goals>
                  <goal>war</goal>
                </goals>
              </execution>
            </executions>
      </plugin>

如何配置此插件以创建两个输出目录,例如?

1 个答案:

答案 0 :(得分:3)

首先,我强烈建议您不要将输出目录覆盖为&#34; target /..."以外的其他目录。 Maven遵循惯例,虽然您可以将其配置为远离约定,但它确实意味着您必须远离常规位置配置所有

现在,如果要复制工作,只需添加第二次执行即可。为此,您需要两个不同的执行ID。

        <executions>
          <execution>
            <id>default-war</id>
            <phase>package</phase>
            <goals>
              <goal>war</goal>
            </goals>
          </execution>
          <execution>
            <id>additional-war</id>
            <phase>package</phase>
            <goals>
              <goal>war</goal>
            </goals>
          </execution>
        </executions>

要让它们具有不同的配置,请在执行时添加本地配置差异。

       <executions>
          <execution>
            <id>default-war</id>
            <phase>package</phase>
            <goals>
              <goal>war</goal>
            </goals>
            <configuration>
              ... stuff specific to the first war ...
            </configuration>
          </execution>
          <execution>
            <id>additional-war</id>
            <phase>package</phase>
            <goals>
              <goal>war</goal>
            </goals>
            <configuration>
              ... stuff specific to the second war ...
            </configuration>
          </execution>
        </executions>

请注意,这不会为单个war文件创建两个输出目录,而是将战争重新打包两次到两个不同的输出目录。这是一个很好的细节,但偶尔也很重要。