Maven 使用pom自动复制文件

Maven 使用pom自动复制文件,maven,intellij-idea,kotlin,Maven,Intellij Idea,Kotlin,我的Intellij项目中有3个模块: Java模块 Kotlin模块 杂项文件模块 我在misc files模块中有一个XSD文件,我需要在Kotlin模块的test resources文件夹中有一个精确副本。i、 e.无论何时更新,我都需要将其复制到Kotlin模块 如何更新Kotlin模块的maven POM文件,使其能够自动复制此文件?您不能直接使用maven复制文件,但有一个插件可供其执行Ant任务。其中一个预定义任务是copy,可以如下所示使用。它可以钩住Maven执行的各个阶段

我的Intellij项目中有3个模块:

  • Java模块
  • Kotlin模块
  • 杂项文件模块
我在misc files模块中有一个XSD文件,我需要在Kotlin模块的test resources文件夹中有一个精确副本。i、 e.无论何时更新,我都需要将其复制到Kotlin模块


如何更新Kotlin模块的maven POM文件,使其能够自动复制此文件?

您不能直接使用
maven
复制文件,但有一个插件可供其执行
Ant
任务。其中一个预定义任务是
copy
,可以如下所示使用。它可以钩住
Maven
执行的各个阶段。这可能需要一些技巧

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-antrun-plugin</artifactId>
      <version>1.8</version>
      <executions>
        <execution>
          <id>copy-war-to-docker</id>
          <phase>package</phase>
          <goals>
            <goal>run</goal>
          </goals>
          <configuration>
            <target>
              <copy file="${build.warFile}"
                    tofile="${basedir}/docker/${build.name}.war"/>
            </target>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

org.apache.maven.plugins
maven antrun插件
1.8
复制战争到docker
包裹
跑

您不能直接使用
Maven
复制文件,但它有一个插件可以执行
Ant
任务。其中一个预定义任务是
copy
,可以如下所示使用。它可以钩住
Maven
执行的各个阶段。这可能需要一些技巧

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-antrun-plugin</artifactId>
      <version>1.8</version>
      <executions>
        <execution>
          <id>copy-war-to-docker</id>
          <phase>package</phase>
          <goals>
            <goal>run</goal>
          </goals>
          <configuration>
            <target>
              <copy file="${build.warFile}"
                    tofile="${basedir}/docker/${build.name}.war"/>
            </target>
          </configuration>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

org.apache.maven.plugins
maven antrun插件
1.8
复制战争到docker
包裹
跑

此文件的用途是什么?它是项目资源吗?什么时候使用?在最终产品中它应该在哪里结束?是的,一个资源文件。你知道,我还不知道最终产品-我只是说kotlin模块的测试资源文件夹(作为副本的目的地)-它用于运行特殊测试完成的一些报告(听起来可能很奇怪,但测试是一种很好的报告方式,因为它们可以参数化,这对本项目很有用)然后,听起来Kotlin模块对misc模块有依赖关系。添加一个与此相关的
,并将文件放在misc项目
src/main/resources
文件夹下。这样,Kotlin模块将像访问任何类路径资源一样访问它。好的,我将研究一下-我对模块间操作不熟悉-谢谢不起作用。在调查了
.xsd
文件的实际用途之后(这是一个我很久没有接触过的老项目),它被Kotlin模块中的XML文件引用为其模式。因此,该文件需要物理上位于Kotlin模块的resources文件夹中。当然,它也被misc files模块中的XML文件引用,这就是为什么我在两个模块中都需要相同的XSD文件。因此,我想我最初的问题仍然是…该文件用于什么它是一个项目资源吗?什么时候使用?它应该在最终产品中的什么地方结束?是一个资源文件。你知道,我还不知道最终产品-我只是说kotlin模块的测试资源文件夹(作为副本的目的地)-它用于运行特殊测试时完成的一些报告(听起来可能很奇怪,但测试是一种很好的报告方式,因为它们可以参数化,这对本项目很有用)然后,听起来Kotlin模块对misc模块有依赖关系。添加一个与此相关的
,并将文件放在misc项目
src/main/resources
文件夹下。这样,Kotlin模块将像访问任何类路径资源一样访问它。好的,我将研究一下-我对模块间操作不熟悉-谢谢不起作用。在调查了
.xsd
文件的实际用途之后(这是一个我很久没有接触过的老项目),它被Kotlin模块中的XML文件引用为其模式。因此,该文件需要实际位于Kotlin模块的resources文件夹中。当然,它也被misc files模块中的XML文件引用,这就是为什么我在两个模块中都需要相同的XSD文件。所以我想我最初的问题仍然存在。。。