是否可以在我的代码生成器xml配置文件中读取属性文件(比如数据库属性文件)中的值?
例如,我将所有数据库属性存储在一个单独的文件中,如: -
local.datasource.url=jdbc:mysql://localhost:3307
local.datasource.username=testuser
local.datasource.password=testpassword
local.datasource.driver-class-name=com.mysql.jdbc.Driver
我的应用程序正在使用上述连接信息来访问数据库。 我希望我的jooqCodeGen.xml看起来像这样:
<jdbc>
<driver>${local.datasource.driver-class-name}</driver>
<url>${local.datasource.url}</url>
<user>${local.datasource.username}</user>
<password>${local.datasource.password}</password>
</jdbc>
...
因此,我不必复制这些属性。 我正在从build.gradle
触发JOOQ代码生成工具的build.gradle
task generateJooqDatabaseSource(type: JavaExec) {
classpath = sourceSets.main.runtimeClasspath
main = 'org.jooq.util.GenerationTool'
args = ['/jooqCodeGen.xml']
standardOutput = System.out
errorOutput = System.err
}
我们有办法实现这个目标吗?
答案 0 :(得分:1)
您可以在gradle构建期间生成XML,如手册
中所示http://www.jooq.org/doc/3.7/manual/code-generation/codegen-gradle/
(这很长,所以我不会在这里复制)
然后您需要做的就是加载db.properties
,以便属性可用于gradle构建,例如(来自https://discuss.gradle.org/t/how-to-include-an-external-properties-file/4263/2)
ext.dbProps = new Properties()
dbProps.load(file("db.properties"))
然后您可以访问您的属性:
println dbProps['local.datasource.url']