【问题标题】:Using Maven, how can a child module inherit the parent module's repository?使用 Maven,子模块如何继承父模块的存储库?
【发布时间】:2018-05-23 16:01:49
【问题描述】:

目前我的网络应用程序有一个 spring-boot/java 后端和一个 angular5/node 前端。我正在使用 Maven 包装器来封装项目,以便后端和前端都通过父 pom 链接。

我现在正在配置我的数据库,并将存储库信息放在父 pom.xml 中。 “我听说这是最佳实践,因为它使您能够从其他未来项目访问数据库。前 Android 应用程序”

我需要在我的父/子 pom 中包含什么,以便我的后端模块从父存储库中读取?

谢谢!

【问题讨论】:

  • 澄清一下:repository 在这里是指 database 而不是一些 maven 存储库?
  • 是的 - 如果不清楚,抱歉
  • 你有parent项目作为包装pom和子项目有<parent />部分吗?
  • 是的,这就是当前的配置方式

标签: java mysql node.js spring maven


【解决方案1】:

这可能是可能的,但不确定,因为不太熟悉 Spring 的配置方式。

在父项目pom.xml 中,所有与<properties /> 相关的主要或配置文件也可用于子项目。

通过适当的过滤,您可以使用在父项pom.xml 中设置的属性在您的子项目配置文件中进行设置。

所以对于一个虚拟的和抽象的(完全不相关的 Spring 配置,但只是为了展示它是如何工作的)示例,使用

pom.xml(父)

<properties>
   <db.url>jdbc:postgresql://127.0.0.1:5432/MyDb</db.url>
   ...
<properties>

一些配置/属性文件

db.url=${db.url}

过滤的结果是

db.url=jdbc:postgresql://127.0.0.1:5432/MyDb

另见此过滤相关post

【讨论】:

  • 请注意 spring-boot-starter-parent 模块将资源过滤的默认分隔符更改为@。如果您在项目中使用此模块,则需要在应用程序属性中使用@db.url@
猜你喜欢
  • 2019-09-21
  • 1970-01-01
  • 2015-08-28
  • 1970-01-01
  • 2020-06-27
  • 1970-01-01
  • 2014-11-07
  • 2015-02-25
  • 1970-01-01
相关资源
最近更新 更多