如何使用Maven将资源复制到src目标目录?

6yoyoihd  于 2023-11-17  发布在  Maven
关注(0)|答案(3)|浏览(234)

我目前正在处理一个现有的项目,该项目有一个pom.xml文件,其中包含以下内容:

  1. <resources>
  2. <resource>
  3. <filtering>false</filtering>
  4. <directory>src</directory>
  5. <includes>
  6. <include>**/*.properties</include>
  7. </includes>
  8. </resource>
  9. </resources>

字符串
我在基本路径中有一个名为properties的目录,其中包含属性文件。我想在打包时复制所有属性文件包含在我的src目录中的properties/下(否则程序将由于缺少配置文件而崩溃)。
所以我的问题是:
我如何使用Maven包含不在src目录下的资源文件?
我试了一次,但似乎不起作用:

  1. <resources>
  2. <resource>
  3. <filtering>false</filtering>
  4. <directory>src</directory>
  5. <includes>
  6. <include>**/*.properties</include>
  7. <include>../properties/**</include>
  8. </includes>
  9. </resource>
  10. </resources>


谢谢你的帮助。

l2osamch

l2osamch1#

如果你的文件结构是这样的:Standard Directory Layout
x1c 0d1x的数据
然后你就不必添加资源elemt了。Maven会默认将位于/src/main/resources文件夹中的所有文件和文件夹复制到你的build文件夹中,并将它们定位在编译后的类路径文件的根目录中。
例如,如果您有一个名为configuration.properties的文件位于/src/main/resources/configuration.properties中,那么在运行mvn clean compile时,此文件将被复制到您的/target/classes/configuration.properties中。因此,如果您删除了该部分,则文件将位于您想要的位置。

  1. <resource>
  2. <filtering>false</filtering>
  3. <directory>src</directory>
  4. <includes>
  5. <include>**/*.properties</include>
  6. </includes>
  7. </resource>

字符串

hfyxw5xn

hfyxw5xn2#

通过将项目从ant迁移到maven而不改变项目结构,在构建中设置您的sourceDirectory testSourceDirectory,并使用maven-resource-plugin,如下所示,在执行目标的哪个阶段要小心。

  1. <plugin>
  2. <artifactId>maven-resources-plugin</artifactId>
  3. <version>2.6</version>
  4. <executions>
  5. <execution>
  6. <id>copy-resources01</id>
  7. <phase>process-classes</phase>
  8. <goals>
  9. <goal>copy-resources</goal>
  10. </goals>
  11. <configuration>
  12. <outputDirectory>${basedir}/target/classes</outputDirectory>
  13. <encoding>UTF-8</encoding>
  14. <resources>
  15. <resource>
  16. <directory>${basedir}/src</directory>
  17. <includes>
  18. <include>**/*.properties</include>
  19. </includes>
  20. </resource>
  21. </resources>
  22. </configuration>
  23. </execution>
  24. <execution>
  25. <id>copy-resources02</id>
  26. <phase>verify</phase>
  27. <goals>
  28. <goal>copy-resources</goal>
  29. </goals>
  30. <configuration>
  31. <outputDirectory>${basedir}/build/lib</outputDirectory>
  32. <encoding>UTF-8</encoding>
  33. <resources>
  34. <resource>
  35. <directory>${basedir}/target/</directory>
  36. <include>*.jar</include>
  37. </resource>
  38. </resources>
  39. </configuration>
  40. </execution>
  41. </executions>
  42. </plugin>

字符串

展开查看全部
9lowa7mx

9lowa7mx3#

为了将所有内容从源复制到目的地,我使用了以下命令:

  1. <plugin>
  2. <artifactId>maven-resources-plugin</artifactId>
  3. <version>2.6</version>
  4. <executions>
  5. <execution>
  6. <id>copy-resources</id>
  7. <phase>process-classes</phase>
  8. <goals>
  9. <goal>copy-resources</goal>
  10. </goals>
  11. <configuration>
  12. <outputDirectory>${basedir}/target/classes/static/</outputDirectory>
  13. <resources>
  14. <resource>
  15. <directory>${basedir}/gui/build/</directory>
  16. <includes>
  17. <include>**/*.*</include>
  18. </includes>
  19. </resource>
  20. </resources>
  21. </configuration>
  22. </execution>
  23. </executions>
  24. </plugin>

字符串

展开查看全部

相关问题