4

我正在尝试使用 maven-resources-plugin 复制文件夹或以下结构:

  root
   |- .metadata
   |- Project
   \- .gitignore

项目目录和 .gitignore 文件被复制,但 .metadata 目录由于某种原因被遗漏了。

如何复制根文件夹的所有内容?

这是我尝试过的配置:

  <plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.5</version>
    <executions>
      <execution>
        <id>copy-resources</id>
        <phase>validate</phase>
        <goals>
          <goal>copy-resources</goal>
        </goals>
        <configuration>
          <outputDirectory>${project.build.directory}/aut-ws</outputDirectory>
          <useBuildFilters>false</useBuildFilters>
          <nonFilteredFileExtensions>
            <nonFilteredFileExtension>metadata</nonFilteredFileExtension>
          </nonFilteredFileExtensions>
          <resources>
            <resource>
              <directory>H:\rcptt\workspaces\root</directory>
            </resource>
          </resources>
        </configuration>
      </execution>
    </executions>
  </plugin>
4

4 回答 4

4

您正在寻找配置参数addDefaultExcludes。请参阅文档页面

因此,您的配置部分应如下所示:

    <configuration>
      <outputDirectory>${project.build.directory}/aut-ws</outputDirectory>
      <addDefaultExcludes>false</addDefaultExcludes>
      ...
      <resources>
        <resource>
          <directory>H:\rcptt\workspaces\root</directory>
        </resource>
      </resources>
    </configuration>
于 2016-11-24T17:30:49.423 回答
3

如果这与 maven-assembly-plugin 有关,那么我遇到了这个问题,并且不得不使用该useDefaultExcludes属性(仅限插件的最新版本);默认情况下true,它需要设置为false包含 .metadata 等目录。不过,这似乎不适用于 maven-resources-plugin,或者它可能只是没有记录的属性。

于 2014-11-27T18:26:06.323 回答
1

我的第一次修复尝试是尝试修改资源元素。

<resources>
  <resource>
    <directory>H:\rcptt\workspaces\root</directory>
    <includes>
      <include>**/*</include>
      <include>**/.*</include>
    </includes>
  </resource>
</resources>

另外,如果您注释掉该<nonFilteredFileExtensions>元素,它会起作用吗?


编辑以显示在 Windows 7 和 RedHat Linux 上与 Maven 3.2.2、资源插件 2.7 一起使用的完整插件配置。测试命令是mvn validate.

<plugin>
  <artifactId>maven-resources-plugin</artifactId>
  <executions>
    <execution>
      <phase>validate</phase>
      <goals><goal>copy-resources</goal></goals>
      <configuration>
        <outputDirectory>${project.build.directory}/testing123</outputDirectory>
        <resources>
          <resource>
            <directory>${project.basedir}/src/main/resources</directory>
            <includes>
              <include>**/*</include>
              <include>**/.*</include>
            </includes>
          </resource>
        </resources>
      </configuration>
    </execution>
  </executions>
</plugin>
于 2014-08-21T14:00:29.787 回答
0

就像addDefaultExcludes@Matthew Wise 所说的那样添加。

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.1.0</version>
    <configuration>
        <addDefaultExcludes>false</addDefaultExcludes>
    </configuration>
</plugin>

默认情况下,.gitignore、.cvsignore 等文件被排除在外,这意味着它们不会被复制。如果您出于特定原因需要它们,您可以通过将其设置为 false 来实现。

文档:https ://maven.apache.org/plugins/maven-resources-plugin/copy-resources-mojo.html#addDefaultExcludes

于 2019-01-16T17:20:30.637 回答