5
在几个项目中,我有一些我想共享的资源(特别是Flyway数据库迁移脚本)。可以Maven'导入'资源依赖?
是否有可能将这些共享资源作为Maven工件存在,并且在构建之前Maven解析该依赖关系并将工件内容解压到/src/main/resources/
?如果是这样,一个人会怎么做呢?
在几个项目中,我有一些我想共享的资源(特别是Flyway数据库迁移脚本)。可以Maven'导入'资源依赖?
是否有可能将这些共享资源作为Maven工件存在,并且在构建之前Maven解析该依赖关系并将工件内容解压到/src/main/resources/
?如果是这样,一个人会怎么做呢?
如果您在/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中。
谢谢!如果依赖范围是'test',那么对于'/ src/test/resources'会有同样的效果吗? – 2012-02-16 13:31:20
@Deejay:没有。你也不能从'/ src/test/java'中导入类,即使在使用'test'范围导入时也是如此。 – 2012-02-16 13:34:01
你可以简单地把资源放在'test' artitact的'src/main/resources'中。 – carlspring 2012-02-16 14:38:43