我有一个与当前模块相邻的模块,并且想要从相邻模块中提取一个目录及其子模块,并在构建当前模块时将内容复制到目标目录。
我想知道获取目录指令中相邻人员的相对路径的最佳方法。
尝试
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>generate-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>../adjacent/src/main/docker/</directory>
<filtering>true</filtering>
<includes>
<include>**/*</include>
</includes>
<excludes>
<exclude>**/nodes/**</exclude>
<exclude>**/data/**</exclude>
</excludes>
</resource>
<resource>
<directory>../adjacent/src/main/docker/</directory>
<filtering>false</filtering>
<includes>
<include>**/data/**</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
```
最佳答案
您不必声明 maven-resources-plugin
的执行明确地。它可以在 default-resources
内实现,简化POM。执行,以及:
<build>
...
<resources>
<resource>
<targetPath>..</targetPath> <!-- relative to the target/classes directory
(i.e. ${project.build.outputDirectory}) -->
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<targetPath>..</targetPath>
<directory>../adjacent/src/main/docker/</directory>
<filtering>true</filtering>
<includes>
<include>**/*</include>
</includes>
<excludes>
<exclude>**/nodes/**</exclude>
<exclude>**/data/**</exclude>
</excludes>
</resource>
<resource>
<targetPath>..</targetPath>
<directory>../adjacent/src/main/docker/</directory>
<filtering>false</filtering>
<includes>
<include>**/data/**</include>
</includes>
</resource>
</resources>
...
</build>
对于<directory>
“The path is relative to the POM.”。所以,../adjacent/src/...
没问题。
这还有一个优点,即 Eclipse m2e 插件会考虑这些声明,即资源在 Project → Clean... 中复制,而不是仅在 Maven 构建期间复制。
关于java - 使用资源插件从相邻的 Maven 模块复制静态文件和目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55361539/