2

我在依赖项中有一个目录,我想在初始化阶段将其复制到 src/main/webapp/mypath 中。但我希望它被准确地复制一次,这意味着:

  • 如果 src/main/webapp/mypath 不存在,则从依赖项中复制
  • 如果 src/main/webapp/mypath 存在,则永远不要从依赖项中复制,即使依赖项中的一个更新。如果存在,请不要覆盖它。绝不。

我尝试了几种使用 copy-resources 和 dependency:unpack 的方法,但如果来自依赖项的 mypath 更新/更新,即使我将所有可能的覆盖*配置设置为 false, maven 也会始终覆盖。

有什么建议或 RTFM + 指向我目前尚未阅读的手册的链接吗?

4

2 回答 2

0

您可以使用配置文件

<profiles>
  <profile>
    <activation>
      <file>
        <missing>src/main/webapp/mypath</missing>
      </file>
    </activation>
    ... copy ...
  </profile>
</profiles>
于 2012-12-13T21:40:24.137 回答
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>
于 2016-05-25T14:19:31.530 回答