引用maven antrun插件中爆炸的战争依赖

时间:2011-08-11 18:59:19

标签: maven-2

我有一个声明如下的依赖

<dependency>
    <groupId>com.abc.webapp</groupId>
    <artifactId>mywebapp</artifactId>
    <version>1.3.2</version>
    <type>war</type>
</dependency>

这个作为耳朵一部分的war文件直接在目标中爆炸,我需要将一个文件(version.properties)复制到这个爆炸的war目录(target / mywebapp-1.3)的WEB-INF / classes文件夹中。 2.war /)。如何在没有任何硬编码的情况下在antrun插件中引用此文件夹?提前谢谢。

1 个答案:

答案 0 :(得分:0)

我要作弊,并要求你声明这样的依赖,引用properties

<dependency>
    <groupId>${war.groupId}</groupId>
    <artifactId>${war.artifactId}</artifactId>
    <version>${war.version}</version>
    <type>war</type>
</dependency>

并且你的pom中的属性看起来像这样。

<properties>
    <war.groupId>com.abc.webapp</war.groupId>
    <war.artifactId>mywebapp</war.artifactId>
    <war.version>1.3.2</war.version>
</properties>

现在,如果需要,您仍然需要更改战争GAV,但是您只需要执行一次,而<dependency>和副本都会引用相同的内容。

然后也许你也可以使用maven-resouces-plugin及其copy-resource目标。

  <plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.5</version>
    <executions>
      <execution>
        <id>copy-resources</id>
        <!-- here the phase you need -->
        <phase>validate</phase>
        <goals>
          <goal>copy-resources</goal>
        </goals>
        <configuration>
          <outputDirectory>${basedir}/${war.artifactId}-${war.version}.war/WEB-INF/classes</outputDirectory>
          <resources>          
            <resource>
              <directory>where_version.properties_is</directory>
              <includes>
                <include>version.properties</include>
              </includes>
            </resource>
          </resources>              
        </configuration>            
      </execution>
    </executions>
  </plugin>