我有一些安装在 Maven 中的外部配置(XML 文件)。我需要将它们放在我的测试类路径中,但它们没有出现。
它们必须保留为 XML,我不能将它们打包在 Jar 中 - 但我愿意为此尝试其他任何东西,自定义插件等。
(请不要告诉我 Maven 仅适用于罐子 - 这根本不是真的(如果您提供参考反驳,我可以向您保证这是过时/错误信息)。
依赖项是这样指定的:
<dependency>
<groupId>some.group</groupId>
<artifactId>some.artifact</artifactId>
<version>${project.version}</version>
<scope>test</scope>
<type>xml</type>
<classifier>some.classifier</classifier>
</dependency>
这些 XML 工件是由 build-helper 插件创建的(因此他们项目的 POM 中没有 1-2-1)。
我目前唯一的 hacky 解决方案是检查 M2_HOME 属性并从那里加载文件(因为它们被定义为依赖项 Maven 确实将它们拉下来) - 但我对此并不满意。
编辑:下一个最好的黑客可能是使用 maven-dependency-plugin 将这些复制到输出目录(目标/类)。如果我的配置适用于 Jars,那么这闻起来像 Maven 错误。
编辑 2:@khmarbaise 要求提供 build-helper-plugin 配置:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>target/classes/ddl-seed.xml</file>
<type>xml</type>
<classifier>ddl-seed</classifier>
</artifact>
<!-- ... more definitions -->
这将为所有 XML 工件生成正确的 maven-metadata-local.xml 数据。