2015-09-17 58 views
1

是否可以在我的代碼生成器xml配置文件中讀取屬性文件(比如數據庫屬性文件)中的值?從屬性文件中讀取JOOQ代碼Gen配置文件中的值xml

例如,我已經存儲在單獨的文件中像我所有的數據庫屬性: -

db.properties

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在一定程度上是這樣的:

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

的build.gradle

task generateJooqDatabaseSource(type: JavaExec) { 
    classpath = sourceSets.main.runtimeClasspath 
    main = 'org.jooq.util.GenerationTool' 
    args = ['/jooqCodeGen.xml'] 
    standardOutput = System.out 
    errorOutput = System.err 
} 

有沒有辦法,我們可以做到這一點觸發JOOQ代碼生成工具?

回答

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']