我想在Maven阶段测试期间将文件复制到测试/资源目录,并且仅在test/resource目录中不存在文件时。可以实现这一目标吗?谢谢
以下是@saif asif答案的更新版本,在maven3:
上对我有用<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.8</version>
<executions>
<execution>
<phase>test</phase>
<configuration>
<target>
<taskdef resource="net/sf/antcontrib/antlib.xml" classpathref="maven.dependency.classpath" />
<if>
<available file="/path/to/your/file "/>
<then>
<!-- Do something with it -->
<copy file="/your/file" tofile="/some/destination/path" />
</then>
</if>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>ant-contrib</groupId>
<artifactId>ant-contrib</artifactId>
<version>1.0b3</version>
<exclusions>
<exclusion>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant-nodeps</artifactId>
<version>1.8.1</version>
</dependency>
</dependencies>
</plugin>
感谢https://stackoverflow.com/a/13701310/1410035"将依赖关系添加到插件"解决方案。
在此示例中,值得注意的更改是:
- 将插件更新为版本1.8(最新在写作时)
- 根据https://stackoverflow.com/a/4372491/1410035 ,已更新任务DESTEF以使ClassPathRef
- 根据https://stackoverflow.com/a/13569218/1410035 ,将TaskDef Class Pathref更改为与Maven3一起工作
您可以将copy-maven-plugin
与runIf
一起检查文件是否存在。
使用maven antrun插件来完成此操作。在您的pom.xml中,使用
之类的东西<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.6</version>
<executions>
<execution>
<phase>test</phase>
<configuration>
<tasks>
<taskdef resource="net/sf/antcontrib/antcontrib.properties" />
<if>
<available file="/path/to/your/file "/>
<then>
<!-- Do something with it -->
<copy file="/your/file" tofile="/some/destination/path" />
</then>
</if>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>