我有一个声明如下的依赖
<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插件中引用此文件夹?提前谢谢。
答案 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>