我想使用greendao,但我不想只为dao生成器进行单独的项目。
是否有可能在Gradle中完成一个任务,这只会为我生成一个新的DAO类,如果有的话,它会覆盖以上?
更新1:
我想要这样的结构:
src/main/java/model // output of generator
src/main/java/daoGenerator // generator source
和使用/src/main/java/daogenerator和greendao-generator库的唯一任务将是:
gradle generate
更新2:
最棒的是,当调用任何任务时,gradle检查src/main/java/daoGenerator
中的任何内容是否已更改,如果是,则在称为任务之前fire gradle generate
。
首先创建一个类似的目录结构
src/your_build_type/java/model // output of generator
src/your_build_type/java/daoGenerator // generator source
现在您可以在模块的build.gradle
中定义自己的buildType
。
buildTypes {
your_build_type {
runProguard false
proguardFile getDefaultProguardFile('proguard-android.txt')
debuggable false
}
定义此功能将为您生成一个名为coptembleyour_buildtype的任务,运行该任务将与your_build_type
目录的源一起使用main
。如果两者中的同一类都比在汇编时将一个躺在your_build_type
中的一个类别中。
更改和任务处理将由Gradle自动完成,请观看 Hans Dockter 的真棒介绍
http://www.youtube.com/watch?feature=player_detailpage& v = 5a91dblx8qc#t = 2372
也许您可以做类似Java/with IntegrationTests之类的事情?我没有Greendao的经验,也没有对此进行测试,但是却是:
sourceSets {
greendao {
java.srcDir file('src/greendao/java')
}
}
task generate(type:JavaCompile){
mainClassesDir = sourceSets.greendao.output.classesDir
classpath = sourceSets.greendao.runtimeClasspath
}
,然后在依赖子,Mustrunafter等堡垒上过分。如果更改源或输出已更改,则生成应运行。也许输出的东西有点烦人。所以也许您想以某种方式覆盖。