java安卓写文件路径,如何使用gradle作为构建系统,平台Android配置Protobuf(Java)文件的输出路径?...

我正在努力解决以下问题:

我有2个基于maven的java项目和1个基于gradle的Android项目 . 布局如下:

Workspace/

├── MavenProj1/

├── MavenProj2/

├── AndroidGradleProject1/

├── Protos/

所有这些的包结构很常见,比方说 com.example.* 所以,maven项目配置为:

从 Protos 项目获取protoc文件,生成Java源代码到 com.example.protos .

通过gradle我实现了以下目标:

从 Protos 项目获取protoc文件,生成JavaLite代码到 com.example.protos . But! Javalite插件生成自己的子文件夹 . 结果如下:

AndroidGradleProject1/

├── app/

└──src/main/java/com/example/

└── protos/

└── debug/

└── lite/

└── com/example/protos/

所以,最后我的build.gradle文件:

apply plugin: 'com.android.application'

apply plugin: 'com.google.protobuf'

android {

compileSdkVersion 26

defaultConfig {

applicationId "com.example"

minSdkVersion 24

targetSdkVersion 26

multiDexEnabled true

versionCode 1

versionName "1.0"

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

}

}

sourceSets {

main {

proto {

srcDir '../../../protos'

}

java {

srcDir 'src/main/java'

}

}

}

}

protobuf {

protoc {

artifact = "com.google.protobuf:protoc:3.5.0"

}

generatedFilesBaseDir = "$projectDir/src/main/java/com/example/protos"

plugins {

lite {

// The codegen for lite comes as a separate artifact

artifact = 'com.google.protobuf:protoc-gen-javalite:3.0.0'

}

}

generateProtoTasks {

all().each {

task ->

task.builtins {

remove java

}

task.plugins {

lite {}

}

}

}

}

clean {

delete protobuf.generatedFilesBaseDir

}

dependencies {

protobuf files('../../protos')

implementation 'com.google.protobuf:protobuf-lite:3.0.0'

implementation 'com.google.protobuf:protobuf-java:3.5.0'

implementation fileTree(dir: 'libs', include: ['*.jar'])

implementation 'com.android.support:appcompat-v7:26.1.0'

implementation 'com.android.support.constraint:constraint-layout:1.0.2'

implementation 'com.android.support:support-v4:26.1.0'

testImplementation 'junit:junit:4.12'

androidTestImplementation 'com.android.support.test:runner:1.0.1'

androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值