Мне удалось сгенерировать код protobuf для java с использованием java-lite
, проблема в том, что мне нужен простой 'java'
Уровень проекта:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath "com.android.tools.build:gradle:4.1.0"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Уровень модуля:
plugins {
id 'com.android.application'
id "com.google.protobuf" version "0.8.13"
}
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
applicationId "com.maartin.myapplication"
minSdkVersion 16
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
sourceSets.main.java.filter.exclude 'META-INF/**/*'
packagingOptions {
exclude 'META-INF/**/*'
}
}
dependencies {
implementation 'com.android.support.constraint:constraint-layout:2.0.3'
implementation "androidx.appcompat:appcompat:1.2.0"
testImplementation 'junit:junit:4.13.1'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation "androidx.datastore:datastore-core:1.0.0-alpha02"
implementation "com.google.protobuf:protobuf-javalite:3.13.0"
}
sourceSets {
main {
java {
srcDirs 'build/generated/source/proto/main/grpc'
srcDirs 'build/generated/source/proto/main/java'
srcDir 'src/main/proto'
}
}
}
protobuf {
protoc {
artifact = 'com.google.protobuf:protoc:3.10.0'
}
generateProtoTasks {
all().each { task ->
task.builtins {
java {
option 'lite'
}
}
}
}
}
Код сверху работает безупречно, но генерирует javalite версию. Как я могу сгенерировать простую Java?
Что я пробовал:
Уровень проекта: stays the same
Уровень модуля:
plugins {
id 'com.android.application'
id "com.google.protobuf" version "0.8.13"
}
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
applicationId "com.maartin.myapplication"
minSdkVersion 21
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
packagingOptions {
pickFirst "META-INF/io.netty.versions.properties"
pickFirst "META-INF/INDEX.LIST"
exclude 'META-INF/*'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/INDEX.LIST'
exclude 'META-INF/native-image/io.netty/transport/native-image.properties'
exclude 'META-INF/native-image/io.netty/codec-http2/native-image.properties'
exclude 'META-INF/native-image/io.netty/codec-http2/*'
exclude 'META-INF/native-image/io.netty/codec-http2/*'
exclude 'META-INF/native-image/io.netty/buffer/native-image.properties'
exclude 'META-INF/native-image/io.netty/handler/native-image.properties'
exclude 'META-INF/native-image/io.netty/*'
exclude 'META-INF/native-image/io.netty/common/native-image.properties'
exclude 'META-INF/native-image/io.netty/transport/reflection-config.json'
exclude 'META-INF/native-image/io.netty/codec-http/native-image.properties'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/ASL2.0'
exclude("META-INF/*.kotlin_module")
}
sourceSets.main.java.filter.exclude 'META-INF/**/*'
packagingOptions {
exclude 'META-INF/**/*'
}
}
dependencies {
implementation 'com.android.support.constraint:constraint-layout:2.0.3'
implementation "androidx.appcompat:appcompat:1.2.0"
testImplementation 'junit:junit:4.13.1'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation "androidx.datastore:datastore-core:1.0.0-alpha02"
implementation group: 'com.google.protobuf', name: 'protobuf-java', version: '3.12.0'
implementation group: 'io.grpc', name: 'grpc-all', version: '1.29.0'
}
sourceSets {
main {
java {
srcDirs 'build/generated/source/proto/main/grpc'
srcDirs 'build/generated/source/proto/main/java'
srcDir 'src/main/proto'
}
}
}
protobuf {
protoc {
artifact = 'com.google.protobuf:protoc:3.11.0'
}
plugins {
grpc {
artifact = 'io.grpc:protoc-gen-grpc-java:1.29.0'
}
}
generateProtoTasks {
all()*.plugins {
grpc {
outputSubDir = 'java'
}
}
}
}
При новом подходе - у меня нет ошибок, но у build/generated/source/proto
есть только папка отладки (файлы java не генерируются)