当前位置: 首页 > 面试题库 >

使用Maven将多个资源目录复制到独立的目标目录

马阳晖
2023-03-14
问题内容

在Maven的资源插件:

此目标要求您配置要复制的资源,并指定outputDirectory。

basedir使用maven 将内的两个(或多个)外部资源目录复制到构建输出目录(请参阅blahuggh)。

${basedir}/ 
  - pom.xml
  - blah/
  - uggh/
  - src/
    - main/..
    - test/..
  - target/
    - classes/..
    - blah/
    - uggh/

例如,给定上面复制的目录结构,blahuggh使用maven到目标目录。复制一个或另一个很容易,但是,该插件仅接受一个outputDirectory。如果将target目录和两个目录都指定为资源,则每个目录的内容将被复制到目录,target而不是目录本身。

插件的其他使用将覆盖初始名称。另外,我尝试指定整个basedir目录,仅包含所需的目录。这不会复制任何内容。

这是复制单个目录的示例

  <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>${basedir}/target/blah</outputDirectory>
          <resources>
            <resource>
                <directory>blah</directory>
                <filtering>true</filtering>
            </resource>
          </resources>
        </configuration>
      </execution>
    </executions>
  </plugin>

问题答案:

这是文件结束的位置:

<outputDirectory>${basedir}/target/blah</outputDirectory>

这是从中复制的位置:

<directory>src/main/otherresources</directory>

会有一个<include><includes>标记来告诉文件

倍数

您需要多个,其中多个文件夹<execution>具有不同<id>的:

  <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>${basedir}/target/blah</outputDirectory>
          <resources>
            <resource>
                <directory>blah</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>${basedir}/target/ughh</outputDirectory>
          <resources>
            <resource>
                <directory>ughh</directory>
                <filtering>true</filtering>
            </resource>
          </resources>
        </configuration>
      </execution>
    </executions>
  </plugin>


 类似资料:
  • Maven资源插件: 此目标要求配置要复制的资源,并指定OutputDirectory。 使用maven将中的两个(或更多)外部资源目录复制到构建输出目录(请参见和)。 下面是复制单个目录的示例:

  • 我目前正在处理一个现有的项目,该项目有一个具有以下内容的pom.xml文件: 我尝试了这个,但似乎不起作用: 谢谢你的帮助。

  • 我正在使用: openjdk版本“11.0.1”2018-10-16 Apache Maven 3.6.0来构建我的项目。 期望从我编译的服务器复制3个资源文件到复制资源文件的服务器。预期方式: 从本地目标/类/env/${current_env}复制context.xml /online/sand/pps/apache-tomcat-9.0.8/webapps/pps/META-INF_cont

  • 但是,我看到以下错误消息: 但是本地目录中确实包含。

  • 我正试图在quarkus应用程序目录中创建我的“数据”文件夹。我试过用文档写的所有东西,比如应用程序。属性、maven属性和创建资源配置。json。我得到的最好结果是保存资源配置。将json文件本身放入-Pnative building中。如果能帮我解决这个问题,我将不胜感激!在此处输入图像描述 Quarkus属性: pom文件本身:

  • 问题内容: 我有一个目录/ a / b / c,其中包含文件和子目录。我需要将/ a / b / c / *复制到/ x / y / z目录中。我可以使用哪些python方法? 我试过了,但是python尝试创建/ x / y / z并引发一个。 问题答案: 我发现此代码有效: 参考: Python 2:https://docs.python.org/2/distutils/apiref.html