在多模块专家项目中指定公共资源

2022-09-01 03:57:03

有没有办法在 Maven 中父项目的模块之间共享资源?例如,我想为多模块 Maven 项目中的所有模块指定一个 log4j.properties 文件。

通常,我使用 Eclipse IDE 通过选择一个常规项目来创建父项目,然后通过指定 .这将创建一个“干净”的项目结构,没有和等文件夹。我想知道在这种情况下应该把这样的共享资源放在哪里。pomsrc

编辑1:我想把公共资源放在父项目中。


答案 1

我会创建一个额外的“基本”模块(项目),打包“jar”,其中包含 中的公共资源。然后我会让其他模块依赖于该项目。现在,他们可以在类路径上看到公共资源。src/main/resources


答案 2

Antoher 的可能性是使用远程资源包。您将能够在父项目中配置它。在此示例中,我想复制一些文件仅用于测试。如果使用此选项,则需要在另一个项目中创建捆绑包。

    <plugin>      
        <groupId>org.apache.maven.plugins</groupId>         
        <artifactId>maven-remote-resources-plugin</artifactId>
        <version>1.5</version>
        <configuration>
            <resourceBundles>
                <resourceBundle>es.sca:myBundle:1.0.0</resourceBundle>
            </resourceBundles>
            <attachToMain>false</attachToMain>
            <attachToTest>true</attachToTest>
            <appendedResourcesDirectory>${basedir}/src/test/resources</appendedResourcesDirectory>
        </configuration>            
        <executions>
            <execution>
                <goals>
                    <goal>process</goal>
                </goals>
            </execution>
        </executions>                   
    </plugin>                 

推荐