1. Clone

1.1 git clone https://github.com/grpc/grpc-java.git

1.2 idea 打开grpc-java工程

2.compile

2.1 java version

java 版本需要 1.8 以上

2.2 gradle.properties

grpc-java 有一个用于 protoc 的 C++ 代码生成插件。由于许多 Java 开发人员没有安装 C 编译器,也不需要运行或修改 codegen,因此构建可以跳过它。要跳过,请创建文件

/gradle.properties并添加skipCodegen=true.

grpc-java 的某些部分依赖于 Android。由于许多 Java 开发人员没有安装 Android SDK,也不需要运行或修改 Android 组件,因此构建可以跳过它。要跳过,请创建文件

/gradle.properties并添加skipAndroid=true.

在grpc-java的根目录下新建一个gradle.properties 文件。

2.3 gradle

运行 $ ./gradlew build 构建 grpc-java。

运行:$ ./gradlew publishToMavenLocal 将依赖安装到 Maven 本地仓库中。

3. Build examples

运行 $ ./gradlew build 构建 grpc-java/examples。

    Execution failed for task ':generateProto'.
> Could not resolve all files for configuration ':protobufToolsLocator_grpc'.
> Could not find io.grpc:protoc-gen-grpc-java:1.46.1-SNAPSHOT.

对于这个问题,主要是因为io.grpc:protoc-gen-grpc-java:1.46.1-SNAPSHOT. 这个jar没有生成,在我们本地的仓库中没找到。打包生成的方式,我还没找到。

一个取巧的解决方法是将example/build.gradle中的这个SNAPSHOT版本号替换成已有的正式版本。

正式版本: https://repo1.maven.org/maven2/io/grpc/protoc-gen-grpc-java/

从中找到跟你项目的grpcVersion 接近的正式版本。

 grpc { artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}" }

  将${grpcVersion} 替换成你跟SNAPSHOT版本相近的正式版本。

如:grpc { artifact = "io.grpc:protoc-gen-grpc-java:1.46.0" }

然后再重新运行 $ ./gradlew build 构建 grpc-java/examples。

大功告成,grpc-java源码就编译完成了。

grpc-java源码环境编译的更多相关文章

  1. Android:源码环境编译自定义的APP到ROM(System Image)中

    有时候我们需要在源码环境中增加自己的应用或模块,随ROM一起发布. 下面讲述相关步骤: 1. 首先可以在SDK环境下进行编码设计(如果你的APP不涉及到emulator无法模拟的硬件的话) 也可以参考 ...

  2. Android:源码环境下移植第三方的apk内置到ROM(System Image)中

    1. 首先在vendor目录下新建一个the3rdapk的目录,将需要内置的apk丢进去,目录名自己随意定. 2. 在 build/target/product/common.mk最后面,在$(cal ...

  3. 【JDK命令行 一】手动编译Java源码与执行字节码命令合集(含外部依赖引用)

    写作目标 记录常见的使用javac手动编译Java源码和java手动执行字节码的命令,一方面用于应对 Maven 和 Gradle 暂时无法使用的情况,临时生成class文件(使用自己的jar包):另 ...

  4. android源码环境下用mmm/mm编译模块,输出编译log到文件的方法

    android源码环境下用mmm/mm编译模块,输出编译log到文件的方法 1,在android目录下直接用mmm命令编译, log信息保存在android目录下 mmm packages/apps/ ...

  5. Android反编译(一)之反编译JAVA源码

    Android反编译(一) 之反编译JAVA源码 [目录] 1.工具 2.反编译步骤 3.实例 4.装X技巧 1.工具 1).dex反编译JAR工具  dex2jar   http://code.go ...

  6. JVM之---Java源码编译机制

    Sun JDK中采用javac将Java源码编译为class文件,这个过程包含三个步骤:     1.分析和输入到符号表(Parse and Enter)    Parse过程所做的工作有词法和语法分 ...

  7. 在IDEA中搭建Java源码学习环境并上传到GitHub上

    打开IDEA新建一个项目 创建一个最简单的Java项目即可 在项目命名填写该项目的名称,我这里写的项目名为Java_Source_Study 点击Finished,然后在项目的src目录下新建源码文件 ...

  8. 自己动手实现springboot运行时执行java源码(运行时编译、加载、注册bean、调用)

    看来断点.单步调试还不够硬核,根本没多少人看,这次再来个硬核的.依然是由于apaas平台越来越流行了,如果apaas平台选择了java语言作为平台内的业务代码,那么不仅仅面临着IDE外的断点.单步调试 ...

  9. 鸿蒙内核源码分析(编译脚本篇) | 如何防编译环境中的牛皮癣 | 百篇博客分析OpenHarmony源码 | v58.01

    百篇博客系列篇.本篇为: v58.xx 鸿蒙内核源码分析(环境脚本篇) | 编译鸿蒙原来如此简单 | 51.c.h.o 本篇用两个脚本完成鸿蒙(L1)的编译环境安装/源码下载/编译过程,让编译,调试鸿 ...

随机推荐

  1. 利用Matlab快速绘制栅格地图

    代码演示 % 基于栅格地图的机器人路径规划算法 % 第1节:利用Matlab快速绘制栅格地图 clc clear close all %% 构建颜色MAP图 cmap = [1 1 1; ... % ...

  2. 圣诞节,把网站所有的js代码都压缩成圣诞树吧。

    本文分两章节,分别讲解如何使用js2image这个库生成可以运行的圣诞树代码 和 js2image的原理. github地址:https://github.com/xinyu198736/js2ima ...

  3. 在小程序中Tabbar显示和隐藏的秘密

    其实对Tabbar 的用法的理解总结下来分这几个阶段: 第一阶段:在 app.json 中配置 "tabBar": { "list": [{ "pag ...

  4. webSocket原理探索

    本文概述 Web Sockets的目标是在一个单独的持久连接上提供全双工.双向通信.在Javascript创建了Web Socket之后,会有一个HTTP请求发送到浏览器以发起连接.在取得服务器响应后 ...

  5. hbase增删查

    代码: package cn.idcast.hbase; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.h ...

  6. 在node中通过cors跨域。

    cors : 全称 cross origin resource share  跨资源共享 在nodejs 中可以通过在服务器端设置代码如下实现cors跨域 res.setHeader('Access- ...

  7. numpy教程06---ndarray的进阶操作

    欢迎关注公众号[Python开发实战], 获取更多内容! 工具-numpy numpy是使用Python进行数据科学的基础库.numpy以一个强大的N维数组对象为中心,它还包含有用的线性代数,傅里叶变 ...

  8. Spring框架技术

    Spring框架技术 SSM(Spring+SpringMVC+Mybatis)阶段的学习,也算是成功出了Java新手村. 前面我们已经学习过Mybatis了. 从这里开始,很多的概念理解起来就稍微有 ...

  9. 1、【Python运维脚本】Python 按时间删除和清空文件

    删除和清空文件,用shell的话一条命令就够了,Python要一堆命令. 但是为了学习Python,所以用于实战,就得这么干了. Python 按时间删除和清空文件 #!/usr/bin/python ...

  10. 【图像处理】Golang 获取JPG图像的宽高

    一.背景 有些业务需要判断图片的宽高,来做一些图片相关缩放,旋转等基础操作. 但是图片缩放,旋转,拼接等操作需要将图片从 JPG 格式转成 RGBA 格式操作,操作完毕后,再转回 JPG 图片. 那如 ...