2017-07-26 32 views
1

我正在努力發佈第一個真正有用的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文件有關。

事情我都試過 -

  1. 移動到搖籃4.0(無變化)
  2. 添加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

+0

如果你[看看阿帕奇蒂卡分析器1.16 POM Maven的中央(https://mvnrepository.com/artifact/org.apache .tika/tika-parsers/1.16)你會看到它正確的依賴於Tika Core等。爲什麼不直接告訴Gradle直接使用Maven Central? – Gagravarr

+0

因爲我使用Artifactory中的許可證管理功能,這些功能是按「構建」方式報告的,並且有幾種情況需要提供修補程序庫的版本。 – Gus

+0

我只能建議你向Artifactory報告一個bug,如果你真的需要使用它,因爲它似乎是破壞的東西.... – Gagravarr

回答

2

最後我不得不提交錯誤報告與JFrog。他們爲我解決了這個問題。

事實證明,問題出在我啓用的設置上。有一個設置來隱藏未授權的資源,而不是401(而不是401),防止人們捕魚,看看你有什麼,你沒有透露。這聽起來比較安全,所以我啓用了它。我相信一切都很好,直到我還啓用了匿名訪問......這種組合打破了gradle的依賴關係解析。 JFrog支持說,maven(也可能是gradle)總是首先嚐試匿名訪問。獲得404後,它可能會假定資源(pom.xml)不存在。沒有pom,沒有依賴列表。

Tika 1.12唯一特別的地方是我已經在啓用匿名訪問之前加載它。

所以修復是選中此設置:

screenshot of setting