java - Hyperledger Fabric 中的 Gradle 编译失败 "Could not find com.github.everit-org.json-schema:org.everit.json.schema:1.11.1."

标签 java gradle hyperledger-fabric blockchain chaincode

我是 Hyperledger Fabric 的新手。当我在从 cli 容器安装到对等点后实例化用 java 编写的链代码时,出现了问题:

FAILURE: Build failed with an exception.

* What went wrong:  
Could not resolve all files for configuration ':compileClasspath'.  
> Could not find com.github.everit-org.json-schema:org.everit.json.schema:1.11.1.
  Searched in the following locations:  
      file:/root/.m2/repository/com/github/everit-org/json-schema/org.everit.json.schema/1.11.1/org.everit.json.schema-1.11.1.pom
      file:/root/.m2/repository/com/github/everit-org/json-schema/org.everit.json.schema/1.11.1/org.everit.json.schema-1.11.1.jar
      https://repo.maven.apache.org/maven2/com/github/everit-org/json-schema/org.everit.json.schema/1.11.1/org.everit.json.schema-1.11.1.pom
      https://repo.maven.apache.org/maven2/com/github/everit-org/json-schema/org.everit.json.schema/1.11.1/org.everit.json.schema-1.11.1.jar  
  Required by:
      project : > org.hyperledger.fabric-chaincode-java:fabric-chaincode-shim:1.4.2

我认为这可能是 Maven 存储库的问题,但是当我在主机终端中使用 gradle 时,它​​运行正常,如下所示:

fabric@ubuntu:~/fabric1.4/fabric-samples/chaincode/master-liuqi/java$ sudo /opt/gradle/bin/gradle -b build.gradle build

Task :compileJava
Note: /home/fabric/fabric1.4/fabric-samples/chaincode/master-liuqi/java/src/main/java/org/hyperledger/fabric/example/SimpleChaincode.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

BUILD SUCCESSFUL in 0s  
2 actionable tasks: 2 executed

下面是我的build.gradle,它与hyperleger的示例链码相同。

plugins {
    id 'com.github.johnrengelman.shadow' version '2.0.3'
    id 'java'
}

group 'org.hyperledger.fabric-chaincode-java'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenLocal()
    mavenCentral()
}

dependencies {
    compile group: 'org.hyperledger.fabric-chaincode-java', name: 'fabric-chaincode-shim', version: '1.+'
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

shadowJar {
    baseName = 'chaincode'
    version = null
    classifier = null

    manifest {
        attributes 'Main-Class': 'org.hyperledger.fabric.example.SimpleChaincode'
    }
}

有什么办法可以解决这个问题吗?在主机和容器中运行 gradle build 有什么区别?

最佳答案

实际上,你应该使用

repositories {
    mavenLocal()
    mavenCentral()
    maven {
        maven { url 'https://jitpack.io' }
    }
}

repo 而不是其他答案中的 repo,因为官方 json-schema 文档推荐使用此 repo。

引用:

Add the JitPack repository and the dependency to your pom.xml as follows:

(参见:https://github.com/everit-org/json-schema)

关于java - Hyperledger Fabric 中的 Gradle 编译失败 "Could not find com.github.everit-org.json-schema:org.everit.json.schema:1.11.1.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57217224/

相关文章:

java - OpenNLP 无法与 SOLR 一起使用

java - JScrollPane 中的 JTabbedPane 一次仅显示一项

android - 在 Android studio gradle 中我可以同时使用 Robolectric 和 Android instrumentation 吗?

android - Ionic Android 支持的最低 Gradle 版本是 4.6。当前版本是4.1

blockchain - 角色、从属关系和属性之间有什么区别?

java - 我想从 Realm 数据库中删除数据,但它给了我错误

java - heroku - system.properties 和 java 版本

blockchain - Hyperledger fabcar 示例结构显示连接失败错误

intellij-idea - 使用 Gradle 在 IntelliJ 中跳过测试

node.js - 使用 REST api 注册用户时出现错误