[java-storage-nio]: transitive google-cloud-storage dependency causes scope conflicts when used at test scope
Maintainer thường phản hồi trong vòng 1 ngày
@Dhriti07 đang làm issue này rồi.
Từ ngày 25/8/2026.
Đánh giá
Issue này chưa được đánh giá.
Mô tả
Problem
google-cloud-nio is commonly used at test scope to provide a java.nio.file.FileSystemProvider for gs:// URIs in tests. However, it depends on google-cloud-storage at compile scope, which pulls in ~15 transitive dependencies.
When a project already has google-cloud-storage at compile scope (e.g. via spring-cloud-gcp-starter-storage), adding google-cloud-nio at test scope can cause Maven's "nearest definition wins" rule to silently re-resolve google-cloud-storage and its transitives at test scope. Build tools that strip test-scoped jars from the runtime image (e.g. Jib) then produce containers with missing classes, causing ClassNotFoundException at startup.
The current workaround is to manually exclude google-cloud-storage from google-cloud-nio:
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-nio</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>com.google.cloud</groupId>
<artifactId>google-cloud-storage</artifactId>
</exclusion>
</exclusions>
</dependency>
This is fragile and non-obvious. Every consumer hitting this has to independently discover the problem and apply the same fix.
Suggestion
One of:
-
Separate artifact: publish a
google-cloud-nio-testingartifact that contains only theFileSystemProviderregistration and declaresgoogle-cloud-storageasprovidedoroptional. This matches the pattern used by other GCP libraries (e.g.google-cloud-bigtable-emulator-core). -
Mark
google-cloud-storageasoptional: in the existinggoogle-cloud-nioPOM, declaregoogle-cloud-storageas<optional>true</optional>. Consumers already have it on the classpath at compile scope via their GCS integration. This avoids the transitive scope conflict without a new artifact.
- Ngôn ngữ chính
- Java
- Star
- 2.1k
- Fork
- 1.2k
- Merge trung bình
- 2 ngày 14 giờ
- Pull request đã merge (30 ngày)
- 192
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của googleapis/google-cloud-java
-
[java-core] Timestamp.of(java.sql.Timestamp) is one second late for a time less than a second before the epochCó thể đã có người làm @Vcode2407 đã nhận 4 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
googleapis/google-cloud-java#14636 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[java-firestore] UserDataConverter encodes a pre-epoch Date with negative nanos, so the write is refusedCó thể đã có người làm @wu-hui đã nhận 23 ngày trước. Đang mởpriority: p2 type: bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
googleapis/google-cloud-java#14635 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[java-firestore] UserDataConverter throws IndexOutOfBoundsException on an empty __binary__ valueCó thể đã có người làm @wu-hui đã nhận 23 ngày trước. Đang mởpriority: p2 type: bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
googleapis/google-cloud-java#14634 · 1 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[java-firestore] CustomClassMapper.convertBigDecimal calls .abs() on Double, unintentionally flipping negative values to positiveCó thể làm lại được @wu-hui đã nhận 45 ngày trước và không có pull request nào đang mở. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
googleapis/google-cloud-java#14533 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Github CI failing when trying to install xmllintCó thể đã có người làm @blakeli0 đã nhận 81 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
googleapis/google-cloud-java#14132 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của googleapis/google-cloud-java
Issue tương tự
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 88/100
-
Độ khó 2/5 Dưới một giờ Mức phù hợp với người mới 84/100
cpp-best-practices/project_validator#251 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
backend enhancement
Độ khó 2/5 Nửa ngày Mức phù hợp với người mới 70/100
damodharg6/payledger#16 ·
-
[Bug]: An initiative list with no current entry logs an error on every changeCó thể đã có người làm @dwizard0 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 85/100
Maintainer thường phản hồi trong vòng 1 ngày