我在依赖项中有一个目录,我想在初始化阶段在src / main / webapp / mypath中复制。 但是我希望它只被复制一次,这意味着:
我尝试了一些带有复制资源和依赖的方法:unpack但maven将总是覆盖,如果来自依赖项的mypath更新/更新,即使我将每个可能的覆盖*配置设置为false我知道。
到目前为止我没有读过的手册的任何建议或RTFM +链接?
答案 0 :(得分:0)
您可以使用profiles:
<profiles>
<profile>
<activation>
<file>
<missing>src/main/webapp/mypath</missing>
</file>
</activation>
... copy ...
</profile>
</profiles>
答案 1 :(得分:0)
如@William所述,您可以使用ant插件,将属性导出到maven上下文,如果“true”则跳过任务。
以下是代码:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<exportAntProperties>true</exportAntProperties>
<target>
<available file="src/main/resources/my-data" type="dir"
property="dir-exits"/>
</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-zip-dependencies</id>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<skip>${dir-exists}</skip>
<artifactItems>
<artifactItem>
<groupId>com.mygroup</groupId>
<artifactId>myartifactid</artifactId>
<includes>**/*.json</includes> <outputDirectory>src/main/resources/</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>