java - Maven 将两个单独的目录及其文件复制到不同的位置

标签 java maven

我正在尝试使用 maven 将两个单独的目录及其文件复制到不同的位置目录中,但无法实现此目的,任何人都可以在这里提供帮助吗?

**src/com/smepath ----> buildDirectory/install/****

**src/com/someotherpath -----> buildDirectory/xsd/****

虽然这里有一个相关的问题( Best practices for copying files with Maven )但并不能解决我的问题。

我正在尝试更改以下解决方案。

        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.6</version>
            <executions>
                <execution>
                    <id>copy-resources</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/install</outputDirectory>
                        <resources>
                            <resource>
                                <directory>src/main/resources/common/install</directory>
                                <filtering>true</filtering>
                            </resource>
                            <resource>
                                <directory>src/main/resources/${env}/install</directory>
                                <filtering>true</filtering>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>

就像我为我的第二个目录位置再创建一个类似的条目 xsd然后第二个覆盖第一个。

还使用额外的 <excution> <executions>内或额外的<configuration>也不起作用。

最佳答案

添加第二个<execution>你的 pom 应该可以工作。
我的猜测是您没有指定唯一的 <id>每个阶段。

我的项目布局如下:

src/main/resources/foo
                    |_a.txt
                    |_b.txt
src/main/resources/bar
                    |_c.txt
src/main/resources/baz
                    |_d.txt
src/main/resources/fum
                    |_e.txt
                    |_f.txt

clean validate之后我最终像这样复制了我的文件:

target/location-1
               |_a.txt
               |_b.txt
               |_c.txt
target/location-2
               |_d.txt
               |_e.txt
               |_f.txt

在我的 pom.xml 中使用以下插件定义

  <plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.6</version>
    <executions>
      <execution>
        <id>copy-resources-1</id>
        <phase>validate</phase>
        <goals>
          <goal>copy-resources</goal>
        </goals>
          <configuration>
            <outputDirectory>${project.build.directory}/location-1</outputDirectory>
            <resources>
              <resource>
                <directory>src/main/resources/foo</directory>
                <filtering>true</filtering>
              </resource>
              <resource>
                <directory>src/main/resources/bar</directory>
                <filtering>true</filtering>
              </resource>
            </resources>
          </configuration>
      </execution>
      <execution>
        <id>copy-resources-2</id>
        <phase>validate</phase>
        <goals>
          <goal>copy-resources</goal>
        </goals>
          <configuration>
            <outputDirectory>${project.build.directory}/location-2</outputDirectory>
            <resources>
              <resource>
                <directory>src/main/resources/baz</directory>
                <filtering>true</filtering>
              </resource>
              <resource>
                <directory>src/main/resources/fum</directory>
                <filtering>true</filtering>
              </resource>
            </resources>
          </configuration>
      </execution>
    </executions>
  </plugin>

您应该能够使用上面的示例来复制安装文件和 xsd 文件。

关于java - Maven 将两个单独的目录及其文件复制到不同的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23915482/

相关文章:

android - 如何 Maven-ise 一个 ActionBarSherlock 项目?

java - Java 8 中是否存在相当于 .NET Timeout.InfiniteTimeSpan 字段的无限 Duration?

java - 非托管扩展 TransactionEventHandler Neo4j

maven - 使用 gitlab-ci.yml 文件的代码覆盖率报告

Maven忽略执行配置

java - 我无法在 IntelliJ IDEA 中使用 Maven 的依赖项

java - YCSB 构建后无法运行

java - 如何使用旧版本的 hibernate 运行 Spring boot

java - 使用Java获取网络状态

java.net.SocketException : Socket is closed