1.sbt 依賴樹
參考:
dependencygraph sbt plugin
安裝外掛程式
建立檔案:./.sbt/1.0/plugins/plugins.sbt
新增內容:addsbtplugin(「net.virtual-void」 % 「sbt-dependency-graph」 % 「0.9.0」)
外掛程式啟動
sbt:graphplatform> dependencytree
其他命令:#main-tasks
問題:
專案中要的是hbase1.2.6版本的包,確出現了hbase1.1.1,原因是hive-jdbc和hive-cli間接依賴hbase1.1.1
sbt的依賴包如下所示:
"org.apache.hbase" % "hbase-client" % "1.2.6",
"org.apache.hbase" % "hbase-common" % "1.2.6",
"org.apache.hbase" % "hbase-server" % "1.2.6",
"org.apache.hbase" % "hbase-protocol" % "1.2.6",
"org.apache.hive" % "hive-jdbc" % "2.3.2",
"org.apache.hive" % "hive-cli" % "2.3.2",
專案中依賴截圖如下所示:
解決依賴:
1)使用依賴樹:sbt->project project_name->dependencytree
2)檢視相互依賴:sbt->project project_name->whatdependson org.apache.hbase hbase-annotations 1.1.1
依賴從下往上看「com.jd.jr:graph_importer_2.11:1.0-snapshot」依賴–>「org.apache.hive:hive-cli:2.3.2」依賴–>「org.apache.hive:hive-service:2.3.2」依賴–>「org.apache.hive:hive-llap-server:2.3.2」依賴–>「org.apache.hbase:hbase-server:1.1.1」
找到問題了,需要在「org.apache.hive:hive-cli:2.3.2」排除「org.apache.hbase:hbase-server:1.1.1」
3)其餘三個不需要的jar包參考第二步
sbt依賴的處理後展示
"org.apache.hbase" % "hbase-client" % "1.2.6",
"org.apache.hbase" % "hbase-common" % "1.2.6",
"org.apache.hbase" % "hbase-server" % "1.2.6",
"org.apache.hbase" % "hbase-protocol" % "1.2.6",
"org.apache.hive" % "hive-jdbc" % "2.3.2"
exclude("org.apache.hbase", "hbase-protocol")
exclude("org.apache.hbase", "hbase-client")
exclude("org.apache.hbase", "hbase-common")
exclude("org.apache.hbase", "hbase-service"),
"org.apache.hive" % "hive-cli" % "2.3.2"
exclude("org.apache.hbase", "hbase-protocol")
exclude("org.apache.hbase", "hbase-client")
exclude("org.apache.hbase", "hbase-common")
exclude("org.apache.hbase", "hbase-service"),
4)sbt中先「clean」再「compile」.(其中compile包括了update)
專案中依賴截圖如下所示:
5)sbt依賴樹輸出到本地檔案命令
graph_importer是專案名稱
sbt "project graph_importer" dependencytree >> dependencytree.txt
直接依賴,間接依賴,可選依賴,排除依賴,依賴衝突
在本工程pom檔案中配置的依賴,稱為本工程的直接依賴。本工程pom配置了依賴a,a又依賴b,則本工程也依賴b,b為本工程的間接依賴。在依賴中配置true false 是否向下傳遞,如果配置為true,則別人依賴了本專案,被配置的不會在別人的專案中依賴到。所包含座標 排除依賴包中所包含的依賴關係 不需...
Gradle依賴排除
在引用依賴時經常會有這樣的問題 某些間接引用的依賴項是不需要的 產生了依賴衝突。此時需要排除一些依賴。下面的內容介紹了幾種在gradle中排除依賴的方式。在dependency中排除 dependencies compile com.zhyea ar4j 1.0 excluding a partic...
Gradle依賴排除
在引用依賴時經常會有這樣的問題 某些間接引用的依賴項是不需要的 產生了依賴衝突。此時需要排除一些依賴。下面的內容介紹了幾種在gradle中排除依賴的方式。在dependency中排除 dependencies compile com.zhyea ar4j 1.0 excluding a partic...