Ich arbeite auf die Freigabe der ersten wirklich nützliche Version JesterJ und habe einen großen Haken mit Abhängigkeitsauflösung getroffen. Die freundlichen Leute bei Jfrog waren gut genug, um meine Open-Source-Bemühungen mit freiem Zugang zu Artifactory Pro zu erkennen und nutze sie, um die Lizenzen meiner transitiven Abhängigkeiten zu prüfen und zu validieren. Ich benutze eine Apache 2.0 Lizenz, also versuche ich Apache's own standard für die Einhaltung der 2.0 Lizenzen zu verwenden. Eine der Abhängigkeiten, Apache Tika 1.12, hatte einige Abhängigkeiten der "Kategorie X" 1.12 wurde veröffentlicht, als einige Änderungen an dieser Richtlinie vorgenommen wurden, und neuere Versionen von Tika haben diese Abhängigkeitsprobleme korrigiert.Grad nicht auflösende transitive Abhängigkeiten für Tika über Artefakt
Die logische Lösung besteht darin, meine Tika-Abhängigkeit zu aktualisieren. Leider ist das nicht gut gegangen. Als ich Tika auf 1.15 (oder 1.16 jetzt) hochstufte, fand ich, dass ich die transitiven Abhängigkeiten von Tika-Parsern nicht mehr bekam, einschließlich Tika-Core nicht zu bekommen, was Kompilierungsprobleme verursacht. Hier ist die gradle dependenccies Ausgabe mit 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)
und ändert nichts anderes als die 2 ein 6 in meinem gradle Build ich:
+--- 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)
Dieses Problem liegt irgendwo an der Kreuzung des Artifactory/Gradle und könnte mit der Tatsache zusammenhängen, dass Tika begonnen hat, ihre Pom-Dateien in META-INF in neueren Versionen aufzunehmen.
Dinge, die ich habe versucht -
- Umzug 4.0 (keine Änderung)
- Hinzufügen MavenCentral meiner libs-Release virtuellen Repository Gradle voraus ofJCenter (keine Änderung)
Ich stelle fest, dass Das Maven-Central-Cache-Repository in Artifactory speichert den Pom nicht für 1.16, sondern speichert den Pom für 1.12. Wenn mir irgendjemand sagen kann, wie man Artefakte bekommt, um den Pom zu cachen/zu servieren, oder ob ich mich danach sehne, danach zu fragen (nicht sicher, welches das Problem ist), wäre das hilfreich.
Voll Build-Datei Konfiguration ist hier sichtbar: https://github.com/nsoft/jesterj/blob/273c99a0bceccda7f0933299c699232fec1079ad/code/ingest/build.gradle
anonymen Zugriff auf die jetsterj artifactory hier: https://jesterj.jfrog.io/jesterj/webapp/#/home
Wenn Sie [Blick auf den Apache Tika Parser 1,16 pom auf Maven zentrale] (https://mvnrepository.com/artifact/org.apache .tika/tika-parsers/1.16) Sie werden sehen, dass es korrekt von Tika Core usw. abhängt. Warum sagen Sie Gradle nicht einfach, Maven Central direkt zu benutzen? – Gagravarr
Da ich die Lizenzverwaltungsfunktionen in Artifactory verwende, die in Form von "a build" gemeldet werden, gibt es ein paar Fälle, in denen ich gepatchte Versionen von Bibliotheken bereitstellen muss. – Gus
Ich kann nur vorschlagen, dann melden Sie einen Fehler zu Artefactory, wenn Sie wirklich das verwenden müssen, da es Dinge zu brechen scheint .... – Gagravarr