Hyperledger Fabric-sdk-java
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Hyperledger Fabric-sdk-java
本人使用环境为macOS High Sierra 10.13.4
、Java 9.0.4
目前Hyperledger Fabric官方主要是支持的fabric-sdk-node
,并且有较为完善的中英文文档。然而我的项目要求为Java,所有只能下载fabric-sdk-java
。
Prerequisite:
- Apache Maven(可以通过homebrew安装)
- JDK 1.8+(推荐就是1.8,项目就是用1.8写成的,用
Java 9
会和我一样遇见一些奇奇怪怪的问题) - IDEA
下载项目
git clone https://github.com/hyperledger/fabric-sdk-java
- 1
导入项目
IDEA,以maven工程导入项目,导入依赖。
少量第三方库,可以运行前在根目录下执行以下命令:
mvn dependency:tree
- 1
运行fabric
cd fabric-sdk-java/src/test/fixture/sdkintegration
./fabric up
- 1
- 2
如果出现image不能找到的错误修改fabric-sdk-java/src/test/fixture/sdkintegration 下的docker-compose.yaml中的对应的image tag
即可。
运行测试用例
我们挑选比较常用的End2endIT.java
运行。
这时你便会发现,我们从clong下来的代码中并没有包含org.hyperledger.fabric.protos
这个包。所以需要我们自行下载这个包,并把它添加到我们的项目中的对应位置。这里提供一个源码的下载地址
我们下载对应的jar文件后解压,导入对应包即可。
由于是JDK的代码,我们在用Java 9
编译时有一些选项需要注意
我们需要将字节码文件的版本都设为9。并在命令行参数上加上如下几个参数。
--add-exports java.base/jdk.internal.misc=ALL-UNNAMED --add-modules java.xml.bind --add-modules java.corba
- 1
此外我们还需要修改项目中的pom.xml文件
将source
和target
中的1.8
都改为9
如果在编译时还是报差某些类时,自己在pom.xml
中加上对应的dependency。比如我差java.annotation
我在dependency
中就加上了
解决完了这些依赖后我们再次编译就应该能够成功运行了。运行结果如下图。