我正在努力發佈第一個真正有用的JesterJ版本,並且遇到了依賴解決方案的主要障礙。 Jfrog的友善人士已經足夠認識我的開源工作,可以免費訪問Artifactory Pro,因此我正在使用它來檢查和驗證傳遞依賴關係的許可證。我使用Apache 2.0許可證,因此我試圖使用Apache's own standard來遵守它的2.0許可證。然而,其中一個依賴項Apache Tika 1.12有一些「X類」依賴項1.12是在對該策略進行一些更改時發佈的,我認爲Tika的新版本已經糾正了這些依賴項問題。通過artifactory不能解決Tika的傳遞依賴性的等級
邏輯解決方案是升級我的Tika依賴項。不幸的是這並沒有好轉。當我將Tika升級到1.15(或現在的1.16)時,我發現我不再從tika解析器獲得傳遞依賴關係,包括沒有得到導致編譯問題的tika-core。下面是dependenccies輸出gradle這個與1.12:
+--- org.apache.tika:tika-parsers:1.12
| +--- org.apache.tika:tika-core:1.12
| +--- org.gagravarr:vorbis-java-tika:0.6
| | \--- org.apache.tika:tika-core:1.5 -> 1.12
| +--- com.healthmarketscience.jackcess:jackcess:2.1.2
| | +--- commons-lang:commons-lang:2.6
| | \--- commons-logging:commons-logging:1.1.3 -> 1.2
(etc)
而改變我的gradle這個構建無非是2到6個其他的我得到:
+--- org.apache.tika:tika-parsers:1.16
+--- org.apache.solr:solr-solrj:5.5.0
| +--- commons-io:commons-io:2.4
| +--- org.apache.httpcomponents:httpclient:4.4.1
| | +--- org.apache.httpcomponents:httpcore:4.4.1
(etc)
此問題在於在Artifactory的/搖籃相交的地方這可能與Tika已經開始在最新版本的META-INF中包含他們的pom文件有關。
事情我都試過 -
- 移動到搖籃4.0(無變化)
- 添加MavenCentral我的庫,提前釋放虛擬資源庫ofJCenter(無變化)
我注意到, Artifactory中的maven-central-cache存儲庫不會緩存1.16的pom,但會將pom緩存爲1.12。如果任何人都可以告訴我如何獲得artifactory來緩存/服務pom或者獲取gradle來正確地請求它(不確定哪個是問題),這將會有所幫助。
全力打造文件配置可見這裏: https://github.com/nsoft/jesterj/blob/273c99a0bceccda7f0933299c699232fec1079ad/code/ingest/build.gradle
匿名訪問這裏的jetsterj artifactory的: https://jesterj.jfrog.io/jesterj/webapp/#/home
如果你[看看阿帕奇蒂卡分析器1.16 POM Maven的中央(https://mvnrepository.com/artifact/org.apache .tika/tika-parsers/1.16)你會看到它正確的依賴於Tika Core等。爲什麼不直接告訴Gradle直接使用Maven Central? – Gagravarr
因爲我使用Artifactory中的許可證管理功能,這些功能是按「構建」方式報告的,並且有幾種情況需要提供修補程序庫的版本。 – Gus
我只能建議你向Artifactory報告一個bug,如果你真的需要使用它,因爲它似乎是破壞的東西.... – Gagravarr