Skip to content
Merged
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
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,7 @@ apply from: file('gradle/validation/git-status.gradle')
apply from: file('gradle/validation/validate-source-patterns.gradle')
apply from: file('gradle/validation/rat-sources.gradle')
apply from: file('gradle/validation/owasp-dependency-check.gradle')
apply from: file('gradle/validation/dependency-analyze.gradle.kts')
apply from: file('gradle/validation/ecj-lint.gradle')
apply from: file('gradle/validation/gradlew-scripts-tweaked.gradle')
apply from: file('gradle/validation/validate-log-calls.gradle')
Expand Down
11 changes: 11 additions & 0 deletions changelog/unreleased/dagp-SOLR-18302.yml

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I suspect you are using AI to create these files, and that AI is not using the Gradle tasks we've built & documented (including AGENTS.md) to create them. I can tell because the file doesn't match the pattern that tool creates. Same with your GJF upgrade. Not a problem but...

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

thanks, checking...

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Yeah, fair — I did hand-create these rather than run writeChangelog. I'll regenerate them with the task so they match.

Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# See https://github.com/apache/solr/blob/main/dev-docs/changelog.adoc

title: >
Add dependency-analysis (build-health) reporting to the Gradle build in report-not-fail mode,
and apply its safe advice (unused-dependency removals and test-scope corrections)
type: other
authors:
- name: Serhiy Bzhezytskyy
links:
- name: SOLR-18302
url: https://issues.apache.org/jira/browse/SOLR-18302
31 changes: 18 additions & 13 deletions dev-docs/gradle-help/dependencies.txt
Original file line number Diff line number Diff line change
Expand Up @@ -259,27 +259,32 @@ 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
-----------------------------------------
Analyzing dependencies (dependency-analysis / build-health)
-------------------------------------------------------------

We use the "com.autonomousapps.dependency-analysis" build plugin (aka "DAGP" or
"build-health") to help maintain good dependency hygiene. It identifies things like
unused dependency declarations, transitive dependencies that are used directly and
should be declared, and dependencies declared in the wrong configuration (e.g.
"implementation" instead of "api").

Run it explicitly with:

gradlew analyzeDependencies

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,
since the plugin isn't aware of the semantics of "api" scope.
This prints a per-project report of current advice; nothing fails.

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.
Since the plugin is imperfect, some projects/issue-types are suppressed. Matters of "api" versus
"implementation" are subjective. Please avoid adding new suppressions where possible -- get peer review first.

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.
If you are iterating / experimentation on dependency changes, regenerate the gradle lockfiles
after each change to avoid errors.
*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
For more info: https://github.com/autonomousapps/dependency-analysis-gradle-plugin
1 change: 1 addition & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -490,6 +490,7 @@ opentelemetry-exporter-prometheus = { module = "io.opentelemetry:opentelemetry-e
opentelemetry-runtime-telemetry = { module = "io.opentelemetry.instrumentation:opentelemetry-runtime-telemetry-java17", version.ref = "opentelemetry-runtime-telemetry" }
opentelemetry-sdk = { module = "io.opentelemetry:opentelemetry-sdk", version.ref = "opentelemetry" }
opentelemetry-sdk-extension-autoconfigure = { module = "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure", version.ref = "opentelemetry" }
opentelemetry-sdk-extension-autoconfigure-spi = { module = "io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi", version.ref = "opentelemetry" }
opentelemetry-sdk-metrics = { module = "io.opentelemetry:opentelemetry-sdk-metrics", version.ref = "opentelemetry" }
opentelemetry-sdk-testing = { module = "io.opentelemetry:opentelemetry-sdk-testing", version.ref = "opentelemetry" }
opentelemetry-sdk-trace = { module = "io.opentelemetry:opentelemetry-sdk-trace", version.ref = "opentelemetry" }
Expand Down
10 changes: 8 additions & 2 deletions gradle/validation/dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -112,8 +112,14 @@ allprojects {
// Resolve and update locks only if --write-locks explicitly included
// This may not be the case where this task is added as a dependency, like for "dependencies" task
project.configurations.findAll {
// Add any custom filtering on the configurations to be resolved
it.canBeResolved
// Add any custom filtering on the configurations to be resolved.
// Skip the dependency-analysis plugin's synthetic configurations (marked with "dagp.*"
// attributes); they are not meant to be resolved and would fail lock-file generation.
// Skip spotless's own tool-resolution configurations; their formatter dependencies
// don't belong in the project's dependency lock files.
it.canBeResolved &&
!it.attributes.keySet().any {attr -> attr.name.startsWith("dagp.")} &&
!it.name.startsWith("spotless")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

CC @malliaridis you might want to know about this line I added to get unstable spotless configuration noise out of the lockfile

}.each {it.resolve()}
}
}
Expand Down
72 changes: 72 additions & 0 deletions gradle/validation/dependency-analyze.gradle.kts

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

@malliaridis this PR and another I have will add more Kotlin formatted build files. Our .editorconfig that I contributed says kotlin build files should have 4-space indentation, despite the general default of 2-space. I simply did that by observation of your choice. Do you think kotlin build files should be 4-space indented for some reason (why)?

Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

import com.autonomousapps.DependencyAnalysisExtension

// See dev-docs/gradle-help/dependencies.txt

// Opt-in only: not wired into "check", since the advice needs human judgment
tasks.register("analyzeDependencies") {
group = "verification"
description =
"Reports dependency-analysis (DAGP) advice: unused/undeclared/misconfigured dependencies."
dependsOn(tasks.named("buildHealth")) // non-obvious name
}

configure<DependencyAnalysisExtension> {
issues {
project(":solr:ui") {
onUnusedDependencies {
severity("ignore")
}
onUsedTransitiveDependencies {
severity("ignore")
}
onIncorrectConfiguration {
severity("ignore")
}
}

project(":solr:solrj-jetty") {
onUnusedDependencies {
exclude(":solr:solrj")
}
}

project(":solr:modules:jwt-auth") {
onDuplicateClassWarnings {
severity("ignore")
}
}

all {
// Report advice as warnings rather than failing the build: several categories
// (api-vs-implementation promotions, some test-scope changes) need case-by-case
// human judgment.
onAny {
severity("warn")
}
onUnusedDependencies {
exclude(
"org.jspecify:jspecify",
"com.google.code.findbugs:jsr305",
"com.google.errorprone:error_prone_annotations",
)
}
}
}
}
15 changes: 15 additions & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,24 @@ pluginManagement {
includeBuild("build-tools/build-infra")
}

// The dependency-analysis plugin (build-health) bundles a kotlin-metadata-jvm that can't yet parse
// Kotlin 2.4.0 metadata, so it fails ExplodeJarTask on the :solr:ui (Compose/KMP) module
// ("Provided Metadata instance has version 2.4.0, while maximum supported version is 2.3.0").
// Tracked upstream in autonomousapps/dependency-analysis-gradle-plugin#1661; until that ships,
// force the metadata library to match Solr's Kotlin version so DAGP can analyze the UI module.
buildscript {
configurations.classpath {
resolutionStrategy {
force "org.jetbrains.kotlin:kotlin-metadata-jvm:2.4.0"
}
}
}

plugins {
id 'com.gradle.develocity' version '4.2.2'
id 'com.gradle.common-custom-user-data-gradle-plugin' version '2.4.0'
id 'com.autonomousapps.build-health' version '3.16.0'
id 'org.jetbrains.kotlin.multiplatform' version '2.4.0' apply false
}

apply from: file('gradle/develocity.gradle')
Expand Down
1 change: 0 additions & 1 deletion solr/api/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@ dependencies {
implementation libs.semver4j.semver4j

testImplementation project(':solr:test-framework')
testImplementation project(':solr:api')
testImplementation libs.junit.junit
testImplementation libs.hamcrest.hamcrest
testImplementation libs.apache.lucene.testframework
Expand Down
6 changes: 4 additions & 2 deletions solr/benchmark/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,7 @@ task echoCp {
dependencies {
implementation project(':solr:test-framework')
implementation project(':solr:core')
implementation project(':solr:solrj')
implementation project(':solr:solrj-jetty')
implementation project(':solr:solrj-streaming')

implementation libs.apache.lucene.core
implementation libs.commonsio.commonsio
Expand All @@ -56,4 +54,8 @@ dependencies {
implementation libs.slf4j.api
runtimeOnly libs.lmax.disruptor
annotationProcessor libs.openjdk.jmh.generatorannprocess

testAnnotationProcessor libs.openjdk.jmh.generatorannprocess
testImplementation libs.carrotsearch.randomizedtesting.runner
testImplementation libs.junit.junit
}
8 changes: 4 additions & 4 deletions solr/benchmark/gradle.lockfile
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,11 @@ jakarta.ws.rs:jakarta.ws.rs-api:4.0.0=jarValidation,runtimeClasspath,testRuntime
jakarta.xml.bind:jakarta.xml.bind-api:4.0.2=jarValidation,runtimeClasspath,testRuntimeClasspath
javax.inject:javax.inject:1=annotationProcessor,errorprone,testAnnotationProcessor
junit:junit:4.13.2=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
net.sf.jopt-simple:jopt-simple:5.0.4=annotationProcessor,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
net.sf.jopt-simple:jopt-simple:5.0.4=annotationProcessor,compileClasspath,jarValidation,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
org.antlr:antlr4-runtime:4.13.2=jarValidation,runtimeClasspath,testRuntimeClasspath
org.apache.commons:commons-exec:1.6.0=jarValidation,runtimeClasspath,testRuntimeClasspath
org.apache.commons:commons-lang3:3.20.0=jarValidation,runtimeClasspath,testRuntimeClasspath
org.apache.commons:commons-math3:3.6.1=annotationProcessor,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.apache.commons:commons-math3:3.6.1=annotationProcessor,compileClasspath,jarValidation,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
org.apache.curator:curator-client:5.9.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.apache.curator:curator-framework:5.9.0=compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.apache.curator:curator-test:5.9.0=jarValidation,runtimeClasspath,testRuntimeClasspath
Expand Down Expand Up @@ -154,8 +154,8 @@ org.junit.jupiter:junit-jupiter-api:5.6.2=jarValidation,runtimeClasspath,testRun
org.junit.platform:junit-platform-commons:1.6.2=jarValidation,runtimeClasspath,testRuntimeClasspath
org.junit:junit-bom:5.6.2=jarValidation,runtimeClasspath,testRuntimeClasspath
org.locationtech.spatial4j:spatial4j:0.8=jarValidation,runtimeClasspath,testRuntimeClasspath
org.openjdk.jmh:jmh-core:1.37=annotationProcessor,compileClasspath,jarValidation,runtimeClasspath,testCompileClasspath,testRuntimeClasspath
org.openjdk.jmh:jmh-generator-annprocess:1.37=annotationProcessor
org.openjdk.jmh:jmh-core:1.37=annotationProcessor,compileClasspath,jarValidation,runtimeClasspath,testAnnotationProcessor,testCompileClasspath,testRuntimeClasspath
org.openjdk.jmh:jmh-generator-annprocess:1.37=annotationProcessor,testAnnotationProcessor
org.opentest4j:opentest4j:1.2.0=jarValidation,runtimeClasspath,testRuntimeClasspath
org.ow2.asm:asm-commons:9.10.1=jarValidation,runtimeClasspath,testRuntimeClasspath
org.ow2.asm:asm-tree:9.10.1=jarValidation,runtimeClasspath,testRuntimeClasspath
Expand Down
6 changes: 1 addition & 5 deletions solr/core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,6 @@ dependencies {

implementation libs.eclipse.jetty.client
implementation libs.eclipse.jetty.http
implementation libs.eclipse.jetty.io
implementation libs.eclipse.jetty.util

// ZooKeeper
Expand All @@ -127,7 +126,6 @@ dependencies {
implementation(libs.apache.zookeeper.jute) {
exclude group: 'org.apache.yetus', module: 'audience-annotations'
}
testImplementation variantOf(libs.apache.zookeeper.zookeeper) {classifier 'tests'}

// required for instantiating a Zookeeper server (for embedding ZK)
runtimeOnly libs.xerial.snappy.java
Expand Down Expand Up @@ -182,15 +180,13 @@ dependencies {

testRuntimeOnly project(':solr:modules:analysis-extras')

testImplementation project(':solr:core')
testImplementation project(':solr:test-framework')

testImplementation libs.apache.lucene.testframework

testImplementation libs.eclipse.jetty.io
testImplementation libs.eclipse.jetty.server
testImplementation libs.eclipse.jetty.ee10.servlet
testImplementation libs.eclipse.jetty.util
testImplementation libs.jakarta.servlet.api
testImplementation libs.carrotsearch.randomizedtesting.runner
testImplementation libs.junit.junit
testImplementation libs.hamcrest.hamcrest
Expand Down
5 changes: 2 additions & 3 deletions solr/cross-dc-manager/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,6 @@ description = 'Cross-DC Manager'
dependencies {
implementation platform(project(':platform'))
implementation project(':solr:core')
implementation project(':solr:solrj')
implementation project(':solr:solrj-zookeeper')
implementation project(':solr:modules:cross-dc')
implementation project(':solr:modules:opentelemetry')

Expand Down Expand Up @@ -72,7 +70,8 @@ dependencies {
classifier = "test"
}
}
testImplementation(libs.apache.kafka.clients) {
// EmbeddedKafkaCluster loads org.apache.kafka.test.TestCondition from this at runtime
testRuntimeOnly(libs.apache.kafka.clients) {
artifact {
classifier = "test"
}
Expand Down
2 changes: 0 additions & 2 deletions solr/modules/analysis-extras/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,6 @@ description = 'Additional analysis components'
dependencies {
api project(':solr:core')

implementation project(':solr:solrj')

implementation libs.ibm.icu.icu4j
implementation libs.apache.lucene.analysis.icu
runtimeOnly libs.apache.lucene.analysis.morfologik
Expand Down
1 change: 0 additions & 1 deletion solr/modules/clustering/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ description = 'Search Results Clustering Integraton'
dependencies {
implementation platform(project(':platform'))
implementation project(':solr:core')
implementation project(':solr:solrj')

implementation libs.apache.lucene.core

Expand Down
9 changes: 0 additions & 9 deletions solr/modules/cross-dc/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,6 @@ ext {
dependencies {
implementation platform(project(':platform'))
api project(':solr:core')
implementation project(':solr:solrj')
implementation project(':solr:solrj-zookeeper')
implementation project(':solr:solrj-jetty')

implementation libs.slf4j.api
implementation libs.apache.kafka.clients
Expand All @@ -56,12 +53,6 @@ dependencies {
})
testRuntimeOnly libs.bytebuddy
testRuntimeOnly libs.bytebuddy.agent

testImplementation(libs.apache.kafka.clients) {
artifact {
classifier = "test"
}
}
}

// Make sure that the cloud-minimal.zip artifact is up-to-date with cloud-minimal/conf
Expand Down
14 changes: 7 additions & 7 deletions solr/modules/cross-dc/gradle.lockfile
Original file line number Diff line number Diff line change
Expand Up @@ -124,22 +124,22 @@ org.eclipse.jetty.compression:jetty-compression-common:12.1.10=jarValidation,run
org.eclipse.jetty.compression:jetty-compression-gzip:12.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.eclipse.jetty.ee10:jetty-ee10-servlet:12.1.10=jarValidation,testRuntimeClasspath
org.eclipse.jetty.http2:jetty-http2-client-transport:12.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.eclipse.jetty.http2:jetty-http2-client:12.1.10=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty.http2:jetty-http2-common:12.1.10=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty.http2:jetty-http2-hpack:12.1.10=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty.http2:jetty-http2-client:12.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty.http2:jetty-http2-common:12.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty.http2:jetty-http2-hpack:12.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty.http2:jetty-http2-server:12.1.10=jarValidation,testRuntimeClasspath
org.eclipse.jetty:jetty-alpn-client:12.1.10=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-alpn-client:12.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-alpn-java-client:12.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.eclipse.jetty:jetty-alpn-java-server:12.1.10=jarValidation,testRuntimeClasspath
org.eclipse.jetty:jetty-alpn-server:12.1.10=jarValidation,testRuntimeClasspath
org.eclipse.jetty:jetty-client:12.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.eclipse.jetty:jetty-http:12.1.10=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-io:12.1.10=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-http:12.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-io:12.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-rewrite:12.1.10=jarValidation,testRuntimeClasspath
org.eclipse.jetty:jetty-security:12.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.eclipse.jetty:jetty-server:12.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.eclipse.jetty:jetty-session:12.1.10=jarValidation,testRuntimeClasspath
org.eclipse.jetty:jetty-util:12.1.10=compileClasspath,jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.eclipse.jetty:jetty-util:12.1.10=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testCompileClasspath,testRuntimeClasspath
org.glassfish.hk2.external:aopalliance-repackaged:4.0.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.glassfish.hk2:hk2-api:4.0.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
org.glassfish.hk2:hk2-locator:4.0.1=jarValidation,runtimeClasspath,runtimeLibs,solrPlatformLibs,testRuntimeClasspath
Expand Down
1 change: 0 additions & 1 deletion solr/modules/cuvs/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ dependencies {
implementation libs.cuvs.java
implementation libs.opentelemetry.api
implementation project(':solr:core')
implementation project(':solr:solrj')
implementation libs.apache.lucene.core
implementation libs.slf4j.api

Expand Down
1 change: 0 additions & 1 deletion solr/modules/extraction/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@ ext {
dependencies {
implementation platform(project(':platform'))
implementation project(':solr:core')
implementation project(':solr:solrj')

implementation libs.apache.lucene.core
implementation libs.slf4j.api
Expand Down
Loading