gpt4 book ai didi

java - 模块化项目的属性(property)置换

转载 作者:行者123 更新时间:2023-12-02 05:57:10 25 4
gpt4 key购买 nike

我正在开发一个模块化 Maven 项目。我的项目的框架如下:

|-- parent
|-- model
--pom.xml
|-- services
--pom.xml
|-- web-app
--pom.xml

在模型模块中,我有 persistence.xml 文件,其中包含一些属性引用:

<persistence>

<persistence-unit name="myUnit">

//Some classes definition

<properties>

<property name="javax.persistence.jdbc.driver" value="${db.driverClass}" />
<property name="javax.persistence.jdbc.url" value="${db.connectionURL}" />
<property name="javax.persistence.jdbc.user" value="${db.username}" />
<property name="javax.persistence.jdbc.password" value="${db.password}" />

</properties>


</persistence-unit>

我通过

在模型的 pom.xml 中启用资源过滤
 <build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>

现在我应该在网络应用程序的 pom.xml 中定义一个配置文件

<profiles>
<profile>
<id>Development</id>
<properties>
<db.driverClass>MyDriver</db.driverClass>
<db.connectionURL>jMyUrl</db.connectionURL>
<db.username>MyUsername</db.username>
<db.password>MyPassword</db.password>
</properties>
</profile>
</profiles>

<!-- To launch embded jetty server -->
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>${maven-jetty-plugin.version}</version>
</plugin>

并用运行“mvn jetty:run -P Development”时的值替换引用。但这不起作用。

我该如何解决?

最佳答案

Maven 使用分层方法。
这意味着配置文件仅在它们定义的模块及其子模块中有效。属性也是如此。
在您的情况下,要过滤的文件位于您定义属性的同级模块中。因此它们不会传播到 model 模块

关于java - 模块化项目的属性(property)置换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22989655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com