6

在多个项目中,我有一些我想共享的资源(特别是 Flyway 数据库迁移脚本)。

是否可以让这些共享资源作为 Maven 工件存在,并且在构建之前让 Maven 解决该依赖关系并将工件的内容解压缩到/src/main/resources/?如果是这样,人们会怎么做呢?

4

1 回答 1

7

如果您在其中放置一些文件,/src/main/resources它们将被放置在目标 JAR 工件的 CLASSPATH 中。这意味着如果您依赖这样的工件,您将可以访问所有资源,就像您可以访问其中的类一样。

<dependency>
    <groupId>com.example.foo</groupId>
    <artifactId>my-resources</artifactId>
    <version>0.1</version>
</dependency>

如果my-resources工件在 中包含一些资源/src/main/resources,您可以在运行时访问它们,就像您(或任何其他库)可以访问/src/main/resources来自同一工件的内容一样。

请注意,这不起作用,/src/test/resources因为测试资源仅在surefire执行当前工件期间放置在 CLASSPATH 上。

于 2012-02-16T13:28:09.480 回答