我有一个项目 MyProject,它依赖于另一个项目 BaseProject 中的配置。在 BaseProject 中,我依赖于许多不同的项目,如 ErrorLogging、PerformanceLogging 等......我希望能够构建顶级项目(MyProject)并让它过滤那些项目中的所有 spring xml 文件作为依赖项。我没有运气。我可以看到豆子,但它们没有被过滤。一些 bean 正在使用它们自己的 pom 中定义的默认过滤器进行过滤,但没有使用来自 MyProject 的过滤器。
MyProject - 这包含过滤器文件并从其他项目导入配置。
BaseProject - 定义了需要过滤的 spring bean。
ErrorLogging - 定义了需要过滤的 spring bean。
当我从 MyProject 运行一个包时,所有 spring 文件都被正确地提取到 jar 文件中,但它们仍然包含属性占位符值 ${error.logging.host} 例如...... MyProject 中的 bean 被正确过滤。替代方法是在 MyProject 中定义 bean,但是其中大约有 10 个项目使用 BaseProject 并且它是 bean,我不想在 10 个单独的项目中重新定义它们。
如果有人能对这个问题有所了解,那就太好了。谢谢
编辑 :
为了更清楚地说明这一点,我在项目 ErrorLogging 中有一个名为 errors-config.xml 的 spring beans xml 定义,它定义了用于连接数据库的 beans。这只是有连接详细信息的占位符,应该由 MyProject 内部的 filter.properties 文件提供。
errors-config.xml 作为资源导入到位于 BaseProject 内部的 baseproject-config.xml。基础项目及其配置文件被导入 MyProject。
然后我使用 Maven 构建 MyProject,我希望将 errors-config.xml 中的属性占位符替换为 MyProject 中 filter.properties 中的值。MyProject 可以成功过滤它自己的文件,但不能过滤 ErrorsLogging 项目的文件。ErrorsLogging 似乎从它自己的 src/main/resources 文件夹而不是 MyProject 文件夹中提取过滤器。