2017-07-26 29 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