【问题标题】:Gradle compile dependency outside of projectGradle在项目之外编译依赖
【发布时间】:2017-09-09 19:30:08
【问题描述】:

我的应用程序有一个前端和一个后端存储库。后端是用 Go 编写的,并通过 gRPC 提供 API。生成的 gRPC Java 文件以backend-repo/proto-gen/java/ 结尾(所以backend-repo/proto-gen/java/com/myApp/Users.java)。

在我的前端 android repo 中,我已将后端 repo 子模块到一个名为 server 的文件夹中。我想修改我的build.gradle 以从后端编译.java 文件。

android-repo/
    app/
        build.gradle
    server/proto-gen/java/com/myApp/
        Users.java
        AnotherService.java

我是 Android 开发的新手,正在努力寻找正确的方法。

这是来自我的app/build.gradle 的 sn-p,但它失败了,因为它找不到包 com.google.protobuf。

task compileGrpc (type: JavaCompile) {
    source = fileTree(dir: '../server/proto-gen/java/', include: '**/*.java')
    destinationDir = file('build/classes')
    classpath = files('../server/proto-gen/java/')
    options.compilerArgs = ["-sourcepath", "$projectDir/../server/proto-gen/java/"]
}
dependencies {
    compile 'com.google.protobuf:protobuf-java:3.0.0-alpha-2'
    compileGrpc.execute()
}

【问题讨论】:

    标签: java android gradle android-gradle-plugin grpc-java


    【解决方案1】:

    你可以像这样添加你的依赖项

    dependencies {
            classpath files('server/proto-gen/java/com/myApp/')
        }
    

    这将接受相对路径。

    【讨论】:

      【解决方案2】:

      只需包含项目的 src 源集的路径,就会将它们包含在编译中:

      android {
          ...
          sourceSets {
              main {
                  java.srcDirs = [java.srcDirs, 'server/proto-gen/java']
              }
          }
      }
      

      您将能够在右侧的 Android 视图/项目资源管理器中看到 src 文件/目录并直接编辑文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-15
        • 2014-09-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多