Trong ứng dụng Android của tôi, tôi cần tạo mã nguồn và sử dụng nó trong ứng dụng.
Đối với điều đó tôi đã tạo công việc genSources (sử dụng hướng dẫn) để tạo nguồn. Nó hoạt động chính xác nếu chạy nó một cách riêng biệt.Gradle. Làm thế nào để tạo mã nguồn trước khi biên dịch trong ứng dụng android
Trong trường hợp của tôi, tôi cần chạy tự động tạo mã nguồn.
Từ hướng dẫn tôi phát hiện ra lệnh sau:
compileJava.dependsOn (genSources)
nhưng đó là unknow command cho plugin
áp dụng: 'com.android.library'
ném gradle theo ngoại lệ:
Error:(35, 0) Could not find property 'compileJava' on project ':data'.
Dường như nó có thể là u sed với áp dụng plugin: 'Java'
nhưng tôi không thể sử dụng các plugin 2 cùng
Làm thế nào tôi có thể giải quyết vấn đề này và tạo ra mã nguồn cần thiết trước khi biên dịch?
build.gradle
apply plugin: 'com.android.library'
configurations {pmd}
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 19
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
buildscript {
repositories {
maven {
url "http://repo1.maven.org/maven2/"
}
}
dependencies {
classpath group: 'net.sourceforge.fmpp', name: 'fmpp', version: '0.9.14'
}
ant.taskdef(name: 'fmpp', classname:'fmpp.tools.AntTask', classpath: buildscript.configurations.classpath.asPath)
}
task genSources << {
println "Generating sources...."
ant.fmpp configuration:"src/main/resources/codegen/config.fmpp",
sourceRoot:"src/main/resources/codegen/templates",
outputRoot:"target/generated-sources/main/java";
}
compileJava.dependsOn(genSources)
sourceSets {
main {
java {
srcDir 'target/generated-sources/main/java'
}
}
}
dependencies {
...
}
CẬP NHẬT
Tôi đã tìm thấy một số giải pháp mà ít nhất là không ném ngoại lệ
gradle.projectsEvaluated {
compileJava.dependsOn(genSources)
}
Sau đó, tôi thực hiện gradle build
nhưng không có gì xảy