在gradle中需要定义一个键值,可以被所有模块中的web.xml和properties文件访问到使用

问题描述 投票:0回答:0

我有一个 multiModule Maven 项目,我正在努力将它转换为 gradle。大部分转换已完成。我遇到了最后一个场景,我在根 Pom

中定义了一个属性
<properties> 
        <version.DataSource>Datasource1</version.DataSource>
<\properties>

下面是我的项目结构:

TestApp
|--> buildsrc
|       |--> src
|           | --> test.java-conventions.gradle
|       |--> build.gradle
|--> common-module
|       |--> src
|       |--> resources
|       |--> build.gradle
|       |--> Pom.xml
|--> main-module
|       |--> src
|       |--> resources
|            |--> resources.properties
|       |--> build.gradle
|       |--> Pom.xml
|--> ejb-module
|       |--> src
|       |--> resources
|            |--> persistence.xml
|       |--> build.gradle
|       |--> persistence.xml
|       |--> pom.xml
|--> war-module
|       |--> src
|       |--> resources
|            |--> resources.properties
|       |--> build.gradle
|       |--> Pom.xml
|--> ear-module
|       |--> src
|       |--> build.gradle
|       |--> Pom.xml
|--> settings.gradle
|--> build.gradle
|--> gradle.properties
|--> Pom.xml

所以在 resources.propertis 中我们有一个键:datasourceName = ${version_DataSource} 在 main 和 war 模块中 在 ejb 模块中,persistence.xml 使用相同的 JTA 数据源:

<jta-data-source>${version_DataSource}</jta-data-source>

在 Maven 中,所有属性和 xml 文件都能够访问该字段,但是当我在 build .gradle 或 gradle.properties 中声明时,它没有按预期工作

我已经在 test.java-conventions.gradle 中试过了

ext {
    version_DataSource = 'DataSource1'
}

还尝试用作 project.ext

我收到数据源为空错误

gradle build.gradle
© www.soinside.com 2019 - 2024. All rights reserved.