当前位置: 首页 > 知识库问答 >
问题:

如何在maven插件中复制文件?

华献
2023-03-14

现在我正在编写一个maven依赖项a,并在项目B中使用这个依赖项。两者的文件结构都是:

依赖A:

项目B:

我想做的是当我运行mvn spring boot时:在项目B中运行,测试。A的src/main/resources/files中的txt将被复制到项目B的/WebContent中。

我尝试在依赖项A中编写以下代码:

        final File test = new File("files/test.txt");
        final File dest = new File("WebContent");
        try {
            FileUtils.copyFileToDirectory(test, dest);
        } catch (final IOException e) {
            e.printStackTrace();
        }

但是当我执行mvn spring boot:run时,它说文件不存在。

共有1个答案

秦晋
2023-03-14

尽管我不建议从一个项目复制到另一个项目。即使两个项目中的资源相同,也应该作为各自的资源存在于每个项目中,以保持其完整性。此外,考虑到你正在寻找一个解决方案与maven这样做。

多模块maven项目可以使用远程资源插件将资源捆绑在一个公共的地方-

<plugin>
    <artifactId>maven-remote-resources-plugin</artifactId>
    <version>1.5</version>
    <executions>
      <execution>
        <goals>
          <goal>bundle</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <includes>
        <include>**/*.ddl</include>
        <include>**/*.sql</include>
      </includes>
    </configuration>
</plugin>

源-Maven远程资源

要复制模块内的资源或目标目录,这些资源不是默认布局或构建/资源的一部分,您也可以使用Maven Resources Plugin作为

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.0.2</version>
    <executions>
      <execution>
        <id>copy-resources</id>
        <!-- here the phase you need -->
        <phase>validate</phase>
        <goals>
          <goal>copy-resources</goal>
        </goals>
        <configuration>
          <outputDirectory>${basedir}/target/extra-resources</outputDirectory>
          <resources>          
            <resource>
              <directory>src/non-packaged-resources</directory>
              <filtering>true</filtering>
            </resource>
          </resources>              
        </configuration>            
      </execution>
    </executions>
</plugin>
 类似资料:
  • 我想运行一个Java应用程序。我使用JBoss服务器。我使用Maven。我使用Eclipse。我使用Eclipse将企业存档中的网络存档部署到服务器上。 对于小程序,我需要小程序的。applet.html的可访问文件夹中的类文件。我的想法是复制。class-从我的Web存档的目标文件夹到资源文件夹。所以我在Web-Maven-Project的pom.xml中添加了以下插件: 我想我把阶段和目标搞砸

  • 我试图将一些jar文件从WEB-INF/lib文件夹复制到src/main/webapp/applet文件夹,这是applet所需的全部归档文件,以便jar文件出现在输出war文件中。 我希望这个复制操作需要在maven构建过程中执行。我已经尝试了两个选项,一个是

  • 问题内容: 我有一个Maven插件,其配置中包含groupId,artifactId和版本。 我希望能够从远程存储库下载该工件并将文件复制到项目中。我不知道如何下载工件。 我知道我可以使用依赖插件来解决依赖关系,但是我需要在插件内部进行依赖。我怎样才能做到这一点? 问题答案: 您的插件需要使用ArtifactFactory以及要引导的工件的groupId,artifactId和版本创建一个Arti

  • 我正在尝试安装和配置nginx,但我需要复制一个完整的配置文件。我尝试简单地将它添加到Dockerfile中,因为它只有几行,但Dockerfile似乎对多行命令没有很好的支持。我的意思是我需要复制我的配置文件的原样,我不能污染它的'sed','cat'或'\'在每一行。 有些人建议将配置文件放在公共git存储库中,我想如果没有其他方法的话,我可以这么做。但我一点也不喜欢,因为这没道理。我不想为这

  • 我正在创建一个使用 RestAPI 获取数据的应用程序,对于该操作,我使用改造 2、okhttp3 和 Jackson 将 json 解析为对象,我的应用程序还使用 Firebase 云消息传递 当我编译我的代码时,它会给我以下错误 错误:任务执行失败:app:transformresourceswithmergejavarefordebug。 com . Android . build . AP

  • 我正在尝试使用maven resources插件复制文件夹或以下结构: 项目目录和. gitignore文件被复制,但是。元数据目录由于某种原因被遗漏了。 如何复制根文件夹的所有内容? 以下是我尝试过的配置: