Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions dev-docs/gradle-help/dependencies.txt
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@risdenk please review this; I'd love to have your input

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great. I went down this rabbit hole for a bit too the other day. I didn't make progress. I went through and ripped out all the "permit" and ended up with test failures that I didn't have time to debug. I agree with what you are trying to do. We should not have permit* anywhere for the most part. There may be a few cases where its needed but it should be very rare.

Original file line number Diff line number Diff line change
Expand Up @@ -255,3 +255,28 @@ file as a URL under a <license> tag if there is no reference to a repository
in Maven Central, or in the artifact downloaded by maven when the library
is added as a dependency (in IntelliJ IDEA the libraries can be found
in the project view under External Libraries at the bottom).

Gradle analyzeDependencies and analyzeTestDependencies
-----------------------------------------

We use the "cutterslade.analyze" build plugin to help maintain good dependency hygiene.
It tries to identify when a dependency is needlessly declared, and then fail the build to complain.
Unfortunately, it also requires us to add declarations that Gradle would otherwise deem unnecessary,
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@risdenk I saw a notification about a comment that I can't find in GitHub. You said:

I don't think this statement is true?

The plugin is requiring that dependencies used in a module are actually declared. The api spec has nothing to do with it. It makes each module self sufficient. It means that even if an api dependency removes a dependency (say commons-io) that the module doesn't break if it uses commons-io. it just makes the usage of dependency explicit. This is only for compile time dependencies where its a compile time dependency to actually build the module in question.

How does an "api dependency" remove a dependency?

RE "api": An illustrative example would be :solrj-jetty having api libs.eclipse.jetty.http2.client (Jetty's HttpClient).
The use of "api" is a convenience to a user of a solrj-jetty to spare them from adding an additional implementation scoped dependencies that they are likely to use in conjunction with the lib. But thanks to cutterslade, within Solr, that distinction is defeated. Do you agree and/or am I missing something?

There's a spectrum of developer prerogative from conservative to liberal, in terms of use of "api". I say "likely to use in conjunction with" but another person's definition might simply be the mere existence of a public signature that includes the target lib. I've increasingly preferred to use it conservatively. At work it's used liberally in a mono-repo and the extensive dependency web that doing so creates is out of control.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since the plugin isn't aware of the semantics of "api" scope.

Since the plugin is imperfect, there are rare scenarios where we need to use one of its many special
gradle configurations, such as permitUnusedDeclared and permitTestUnusedDeclared.
Please avoid them by finding alternatives (if possible) -- get peer review.

For example, did you declare something as implementation (or testImplementation) but it's not needed at compile time?
Remove it.
If it's needed at runtime, then add as runtimeOnly (or testRuntimeOnly), *if* it otherwise
doesn't come transitively as such.
Let passing tests be your guide.
Try to be minimalist, omitting dependency declarations unless a failing build requires that you add them.

At each iteration of experimentation doing any dependency change in a build, write the gradle dependency locks.
*Then* run checks or otherwise evaluate the results.
A failure due to dependency locks is generally a failure to remember to write locks; it usually doesn't mean your build edits are flawed.

For more info: https://github.com/gradle-dependency-analyze/gradle-dependency-analyze
11 changes: 2 additions & 9 deletions solr/core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,11 @@ description = 'Apache Solr Core'

dependencies {
api platform(project(":platform"))
permitUnusedDeclared platform(project(":platform"))
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this was a bizarre one since it's a "platform"

// Spotbugs Annotations are only needed for old findbugs
// annotation usage like in Zookeeper during compilation time.
// It is not included in the release so exclude from checks.
compileOnly libs.spotbugs.annotations
testCompileOnly libs.spotbugs.annotations
permitUnusedDeclared libs.spotbugs.annotations
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

because recent plugin update considers compileOnly as such (i.e. automatically)

// Exclude these from jar validation and license checks.
configurations.jarValidation {
exclude group: "com.github.spotbugs", module: "spotbugs-annotations"
Expand All @@ -54,17 +52,14 @@ dependencies {

implementation libs.dropwizard.metrics.core

implementation(libs.jersey.containers.jettyhttp, {
runtimeOnly(libs.jersey.containers.jettyhttp, {
exclude group: "org.eclipse.jetty", module: "jetty-continuation"
exclude group: "org.glassfish.hk2.external", module: "jakarta.inject"
})
permitUnusedDeclared libs.jersey.containers.jettyhttp
implementation libs.jersey.inject.hk2
permitUnusedDeclared libs.jersey.inject.hk2
runtimeOnly libs.jersey.inject.hk2
implementation(libs.jersey.media.jsonjackson, {
exclude group: "jakarta.xml.bind", module: "jakarta.xml.bind-api"
})
permitUnusedDeclared libs.jersey.media.jsonjackson
implementation libs.jersey.core.common
implementation libs.jersey.core.server
implementation libs.hk2.api
Expand All @@ -79,8 +74,6 @@ dependencies {
runtimeOnly libs.apache.lucene.analysis.phonetic
runtimeOnly libs.apache.lucene.backward.codecs
implementation libs.apache.lucene.codecs
implementation libs.apache.lucene.backward.codecs
permitUnusedDeclared libs.apache.lucene.backward.codecs
Comment on lines -82 to -83
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nonetheless, it's still on the runtime classpath (lockfile is truth on such matters).

implementation libs.apache.lucene.classification
implementation libs.apache.lucene.expressions
implementation libs.apache.lucene.grouping
Expand Down
69 changes: 32 additions & 37 deletions solr/core/gradle.lockfile

Large diffs are not rendered by default.

4 changes: 0 additions & 4 deletions solr/modules/cuvs/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,11 @@ dependencies {
implementation project(':solr:core')
implementation project(':solr:solrj')
implementation libs.apache.lucene.core
implementation libs.apache.lucene.backward.codecs
implementation libs.slf4j.api

testImplementation project(':solr:test-framework')
testImplementation libs.apache.lucene.testframework
testImplementation libs.junit.junit
testImplementation libs.commonsio.commonsio

// lucene-backward-codecs is a transitive dependency from cuvs-lucene but required in lockfile
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This explanation doesn't make sense IMO; instead it tells me that the author of the comment doesn't know to write locks first. Maybe our build is complicated for many folks :-(

permitUnusedDeclared libs.apache.lucene.backward.codecs
}

6 changes: 3 additions & 3 deletions solr/modules/cuvs/gradle.lockfile
Original file line number Diff line number Diff line change
Expand Up @@ -97,10 +97,10 @@ org.apache.lucene:lucene-analysis-common:10.3.2=compileClasspath,jarValidation,r
org.apache.lucene:lucene-analysis-kuromoji:10.3.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.apache.lucene:lucene-analysis-nori:10.3.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.apache.lucene:lucene-analysis-phonetic:10.3.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.apache.lucene:lucene-backward-codecs:10.3.2=compileClasspath,jarValidation,permitUnusedDeclared,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.apache.lucene:lucene-backward-codecs:10.3.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.apache.lucene:lucene-classification:10.3.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.apache.lucene:lucene-codecs:10.3.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.apache.lucene:lucene-core:10.3.2=compileClasspath,jarValidation,permitUnusedDeclared,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.apache.lucene:lucene-core:10.3.2=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.apache.lucene:lucene-expressions:10.3.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.apache.lucene:lucene-facet:10.3.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.apache.lucene:lucene-grouping:10.3.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
Expand Down Expand Up @@ -166,4 +166,4 @@ org.slf4j:jcl-over-slf4j:2.0.17=jarValidation,runtimeClasspath,runtimeLibs,solrP
org.slf4j:jul-to-slf4j:2.0.17=solrPlatformLibs
org.slf4j:slf4j-api:2.0.17=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.xerial.snappy:snappy-java:1.1.10.8=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
empty=apiHelper,apiHelperTest,compileOnlyHelper,compileOnlyHelperTest,missingdoclet,packaging,permitAggregatorUse,permitTestAggregatorUse,permitTestUnusedDeclared,permitTestUsedUndeclared,permitUsedUndeclared,signatures
empty=apiHelper,apiHelperTest,compileOnlyHelper,compileOnlyHelperTest,missingdoclet,packaging,permitAggregatorUse,permitTestAggregatorUse,permitTestUnusedDeclared,permitTestUsedUndeclared,permitUnusedDeclared,permitUsedUndeclared,signatures
6 changes: 3 additions & 3 deletions solr/modules/extraction/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ dependencies {

// For 'tikaserver' backend
implementation libs.eclipse.jetty.client
permitUsedUndeclared libs.eclipse.jetty.http
permitUsedUndeclared libs.eclipse.jetty.util
permitUsedUndeclared libs.eclipse.jetty.io
implementation libs.eclipse.jetty.http
implementation libs.eclipse.jetty.util
implementation libs.eclipse.jetty.io
Comment on lines -41 to +43
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@janhoy were you trying to avoid simply using implementation for some reason?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Strange. I must have added libs.eclipse.jetty.client first (which brings in the other three transitively), and then reacted to the error message by permitting them instead of adding explicit. I don't recall exactly what happened in october, but I may have misinterpreted the error message from the plugin during implementation, and then it was never revisited before merge.


testImplementation project(':solr:test-framework')
testImplementation libs.apache.lucene.testframework
Expand Down
10 changes: 5 additions & 5 deletions solr/modules/extraction/gradle.lockfile
Original file line number Diff line number Diff line change
Expand Up @@ -134,13 +134,13 @@ org.eclipse.jetty:jetty-alpn-java-client:12.0.27=jarValidation,runtimeClasspath,
org.eclipse.jetty:jetty-alpn-java-server:12.0.27=jarValidation,testRuntimeClasspath
org.eclipse.jetty:jetty-alpn-server:12.0.27=jarValidation,testRuntimeClasspath
org.eclipse.jetty:jetty-client:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-http:12.0.27=compileClasspath,jarValidation,permitUsedUndeclared,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-io:12.0.27=compileClasspath,jarValidation,permitUsedUndeclared,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-http:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-io:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-rewrite:12.0.27=jarValidation,testRuntimeClasspath
org.eclipse.jetty:jetty-security:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-server:12.0.27=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-session:12.0.27=jarValidation,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-util:12.0.27=compileClasspath,jarValidation,permitUsedUndeclared,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-util:12.0.27=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.glassfish.hk2.external:aopalliance-repackaged:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.glassfish.hk2:hk2-api:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.glassfish.hk2:hk2-locator:3.1.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
Expand Down Expand Up @@ -170,7 +170,7 @@ org.rnorth.duct-tape:duct-tape:1.0.8=jarValidation,testCompileClasspath,testRunt
org.semver4j:semver4j:6.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.slf4j:jcl-over-slf4j:2.0.17=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.slf4j:jul-to-slf4j:2.0.17=solrPlatformLibs
org.slf4j:slf4j-api:2.0.17=compileClasspath,jarValidation,permitUsedUndeclared,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:2.0.17=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.testcontainers:testcontainers:2.0.3=jarValidation,testCompileClasspath,testRuntimeClasspath
org.xerial.snappy:snappy-java:1.1.10.8=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
empty=apiHelper,apiHelperTest,compileOnlyHelper,compileOnlyHelperTest,missingdoclet,packaging,permitAggregatorUse,permitTestAggregatorUse,permitTestUnusedDeclared,permitTestUsedUndeclared,permitUnusedDeclared,signatures
empty=apiHelper,apiHelperTest,compileOnlyHelper,compileOnlyHelperTest,missingdoclet,packaging,permitAggregatorUse,permitTestAggregatorUse,permitTestUnusedDeclared,permitTestUsedUndeclared,permitUnusedDeclared,permitUsedUndeclared,signatures
3 changes: 0 additions & 3 deletions solr/modules/sql/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ description = 'SQL Module'

dependencies {
implementation platform(project(':platform'))
permitUnusedDeclared platform(project(":platform"))
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very weird -- using permitBlahBlah on a platform. A platform based declaration isn't really a dependency, it just imports constraints on dependencies (not actually depending on those things).

implementation project(':solr:core')
implementation project(':solr:solrj')
implementation project(':solr:solrj-streaming')
Expand All @@ -42,8 +41,6 @@ dependencies {
compileOnly libs.immutables.valueannotations // needed due to Calcite requiring this CALCITE-4787
// sub-deps of calcite-core that we reference directly
implementation libs.apache.calcite.linq4j
implementation libs.apache.calcite.avatica.core
permitUnusedDeclared libs.apache.calcite.avatica.core

testImplementation project(':solr:test-framework')
testImplementation libs.apache.lucene.testframework
Expand Down
24 changes: 12 additions & 12 deletions solr/modules/sql/gradle.lockfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
# This file is expected to be part of source control.
com.carrotsearch.randomizedtesting:randomizedtesting-runner:2.8.3=jarValidation,testCompileClasspath,testRuntimeClasspath
com.carrotsearch:hppc:0.10.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
com.fasterxml.jackson.core:jackson-annotations:2.20=compileClasspath,jarValidation,permitUnusedDeclared,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
com.fasterxml.jackson.core:jackson-core:2.20.1=compileClasspath,jarValidation,permitUnusedDeclared,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
com.fasterxml.jackson.core:jackson-databind:2.20.1=compileClasspath,jarValidation,permitUnusedDeclared,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
com.fasterxml.jackson.core:jackson-annotations:2.20=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
com.fasterxml.jackson.core:jackson-core:2.20.1=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
com.fasterxml.jackson.core:jackson-databind:2.20.1=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:2.20.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
com.fasterxml.jackson.dataformat:jackson-dataformat-smile:2.20.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
com.fasterxml.jackson.module:jackson-module-jakarta-xmlbind-annotations:2.20.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
com.fasterxml.jackson:jackson-bom:2.20.1=compileClasspath,jarValidation,permitUnusedDeclared,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
com.fasterxml.jackson:jackson-bom:2.20.1=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
com.fasterxml.woodstox:woodstox-core:7.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
com.github.ben-manes.caffeine:caffeine:3.2.2=annotationProcessor,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testRuntimeClasspath
com.github.kevinstern:software-and-algorithms:1.0=annotationProcessor,errorprone,testAnnotationProcessor
Expand All @@ -25,7 +25,7 @@ com.google.guava:failureaccess:1.0.3=annotationProcessor,compileClasspath,errorp
com.google.guava:guava:33.4.8-jre=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
com.google.j2objc:j2objc-annotations:3.1=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,compileClasspath,errorprone,jarValidation,permitUnusedDeclared,runtimeClasspath,runtimeLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
com.google.protobuf:protobuf-java:3.25.8=annotationProcessor,compileClasspath,errorprone,jarValidation,runtimeClasspath,runtimeLibs,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
com.googlecode.json-simple:json-simple:1.1.1=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
com.ibm.icu:icu4j:77.1=jarValidation,testRuntimeClasspath
com.j256.simplemagic:simplemagic:1.17=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
Expand Down Expand Up @@ -79,8 +79,8 @@ jakarta.ws.rs:jakarta.ws.rs-api:3.1.0=jarValidation,runtimeClasspath,runtimeLibs
javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor
junit:junit:4.13.2=jarValidation,testCompileClasspath,testRuntimeClasspath
org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.apache.calcite.avatica:avatica-core:1.25.0=compileClasspath,jarValidation,permitUnusedDeclared,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
org.apache.calcite.avatica:avatica-metrics:1.25.0=compileClasspath,jarValidation,permitUnusedDeclared,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
org.apache.calcite.avatica:avatica-core:1.25.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
org.apache.calcite.avatica:avatica-metrics:1.25.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
org.apache.calcite:calcite-core:1.37.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
org.apache.calcite:calcite-linq4j:1.37.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,testCompileClasspath,testRuntimeClasspath
org.apache.commons:commons-exec:1.5.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
Expand All @@ -90,9 +90,9 @@ org.apache.commons:commons-text:1.15.0=jarValidation,runtimeClasspath,runtimeLib
org.apache.curator:curator-client:5.9.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.apache.curator:curator-framework:5.9.0=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.apache.curator:curator-test:5.9.0=jarValidation,testRuntimeClasspath
org.apache.httpcomponents.client5:httpclient5:5.2.1=jarValidation,permitUnusedDeclared,runtimeClasspath,runtimeLibs,testRuntimeClasspath
org.apache.httpcomponents.core5:httpcore5-h2:5.2=jarValidation,permitUnusedDeclared,runtimeClasspath,runtimeLibs,testRuntimeClasspath
org.apache.httpcomponents.core5:httpcore5:5.2.3=jarValidation,permitUnusedDeclared,runtimeClasspath,runtimeLibs,testRuntimeClasspath
org.apache.httpcomponents.client5:httpclient5:5.2.1=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
org.apache.httpcomponents.core5:httpcore5-h2:5.2=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
org.apache.httpcomponents.core5:httpcore5:5.2.3=jarValidation,runtimeClasspath,runtimeLibs,testRuntimeClasspath
org.apache.httpcomponents:httpclient:4.5.14=jarValidation,testRuntimeClasspath
org.apache.httpcomponents:httpcore:4.4.16=jarValidation,testRuntimeClasspath
org.apache.httpcomponents:httpmime:4.5.14=jarValidation,testRuntimeClasspath
Expand Down Expand Up @@ -190,7 +190,7 @@ org.pcollections:pcollections:4.0.1=annotationProcessor,errorprone,testAnnotatio
org.semver4j:semver4j:6.0.0=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.slf4j:jcl-over-slf4j:2.0.17=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.slf4j:jul-to-slf4j:2.0.17=solrPlatformLibs
org.slf4j:slf4j-api:2.0.17=compileClasspath,jarValidation,permitUnusedDeclared,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.slf4j:slf4j-api:2.0.17=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.xerial.snappy:snappy-java:1.1.10.8=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
ua.net.nlp:morfologik-ukrainian-search:4.9.1=jarValidation,testRuntimeClasspath
empty=apiHelper,apiHelperTest,compileOnlyHelperTest,missingdoclet,packaging,permitAggregatorUse,permitTestAggregatorUse,permitTestUnusedDeclared,permitTestUsedUndeclared,permitUsedUndeclared,signatures
empty=apiHelper,apiHelperTest,compileOnlyHelperTest,missingdoclet,packaging,permitAggregatorUse,permitTestAggregatorUse,permitTestUnusedDeclared,permitTestUsedUndeclared,permitUnusedDeclared,permitUsedUndeclared,signatures
Loading