在我的项目中声明的依赖项之一具有传递依赖性'com.google.guava:guava:15.0'.但是我在WAS/Weblogic上部署的应用程序由于已修复的CDI问题而无效'com.google.guava:guava:15.0:cdi1.0'.(相同版本,但有分类器)我需要告诉gradle在构建和打包过程中使用这个jar.我试图弄清楚如何使用jar特定的版本分类器来提取这种传递依赖.
试过以下方法:
compile 'com.google.guava:guava:15.0:cdi1.0'.但两个罐子都包含在最终的WAR中.明确添加了依赖关系并定义了解决策略:
configurations.all {
resolutionStrategy {
force 'com.google.guava:guava:15.0:cdi1.0'
}
}
Run Code Online (Sandbox Code Playgroud)
即使这样也行不通.
定义了检查和更改版本的解决方案策略.
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group + ":" + details.requested.name == 'com.google.guava:guava') {
details.useVersion "15.0:cdi1.0"
//details.useTarget "com.google.guava:guava:15.0:cdi1.0"
}
}
}
Run Code Online (Sandbox Code Playgroud)
即使这样也行不通.
需要您就如何解决此问题提出建议.
我使用的是JanusGraph Java API,HBase作为存储后端
我必须提到的一件事是我可以在JanusGraph shell中成功运行相同的命令, gremlin.sh
错误之前的日志如下,这在图形实例打开期间发生, JanusGraphFactory.open(jg.properties)
07:20:46.169 [main-SendThread(cdh-master1:2181)] DEBUG org.apache.zookeeper.ClientCnxn -
Reading reply sessionid:0x263f89ba9d56ce2,
packet:: clientPath:null serverPath:null finished:false header:: 3,8 replyHeader:: 3,55834924519,0
request:: '/hbase,F response:: v{'replication,'meta-region-server,'rs,'splitWAL,'backup-masters,
'table-lock,'flush-table-proc,'region-in-transition,'online-snapshot,'master,'running,'recovering-regions,'draining,'namespace,'hbaseid,'table}
07:20:46.182 [main] WARN o.j.d.hbase.HBaseStoreManager - Unexpected exception during getDeployment()
Run Code Online (Sandbox Code Playgroud)
而错误是
java.lang.RuntimeException: org.janusgraph.diskstorage.TemporaryBackendException: Temporary failure in storage backend
at org.janusgraph.diskstorage.hbase.HBaseStoreManager.getDeployment(HBaseStoreManager.java:364) ~[jar:rsrc:janusgraph-hbase-0.2.0.jar!/:na]
at org.janusgraph.diskstorage.hbase.HBaseStoreManager.getFeatures(HBaseStoreManager.java:403) ~[jar:rsrc:janusgraph-hbase-0.2.0.jar!/:na]
at org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.<init>(GraphDatabaseConfiguration.java:1377) [jar:rsrc:janusgraph-core-0.2.0.jar!/:na]
at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:164) [jar:rsrc:janusgraph-core-0.2.0.jar!/:na]
at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:133) [jar:rsrc:janusgraph-core-0.2.0.jar!/:na]
at org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:80) [jar:rsrc:janusgraph-core-0.2.0.jar!/:na]
Run Code Online (Sandbox Code Playgroud)
我不知道这个TemporaryBackendException,有没有人见过这个?
janusgraph配置的一部分是
gremlin.graph=org.janusgraph.core.JanusGraphFactory
cluster.max-partitions=64
storage.backend=hbase
storage.batch-loading=true
storage.hostname=cdh-master1,cdh-master2,cdh-master3
Run Code Online (Sandbox Code Playgroud)
其中cdh-master1,2,3是动物园管理员仲裁,版本2.0 JanusGraph,HBase的1.2
完整的堆栈跟踪是
at my.graph.Graph.<clinit>(Graph.java:7) …Run Code Online (Sandbox Code Playgroud)