ci(java): publish beta releases to Fury instead of Maven Central (#5011)

## Summary

Java publishing has failed since `v0.42.0-beta.10` because the `lancedb`
Sonatype org hit Maven Central's monthly release-count limit:

```text
Publishing blocked: your organization has reached its monthly release count limit. Grace period ended 2026-11-08. Usage resets 2026-12-01.
```

This sends beta tags to `https://maven.fury.io/lancedb/` instead,
matching how Python publishes betas to `pypi.fury.io/lancedb`. Stable
releases still go to Maven Central.

```text
tag contains "beta" -> setup-java server "fury"  -> mvn deploy -P deploy-to-fury
otherwise           -> setup-java server "ossrh" -> mvn deploy -P deploy-to-ossrh
```

- `java/pom.xml`: new `deploy-to-fury` profile that points
`distributionManagement` at Fury.
- `java/README.md`: explains how to add the Fury and `maven.lance.org`
repositories to use a beta.

Requires a `FURY_TOKEN` secret with push access to the `lancedb` Fury
account. The token is passed as the Maven username with a placeholder
password. That follows Gemfury's convention but hasn't been tested
against Fury yet.

## Evidence

Running the beta path locally (`deploy -pl lancedb-core -am -P
deploy-to-fury`) against a file repository deployed `lancedb-parent`
(POM) and `lancedb-core` (JAR, POM, sources, javadoc).
`help:effective-pom -P deploy-to-fury` resolves the release repository
to `https://maven.fury.io/lancedb/`.

## Merge Risk

**Door:** Two-way. This only changes where future betas are published;
reverting the workflow restores Central publishing.
**Blast Radius:** `release-ci`. Beta consumers need the extra
repository; stable consumers are unaffected.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Will Jones
2026-11-12 11:34:14 -08:00
committed by GitHub
co-authored by Claude Opus 5.5
parent 9755c57d41
commit 1806dc2323
3 changed files with 58 additions and 5 deletions
+34
View File
@@ -1,5 +1,39 @@
# LanceDB Java Enterprise Client
## Installation
Stable releases of `com.lancedb:lancedb-core` are published to Maven Central.
Beta releases are published to `https://maven.fury.io/lancedb/` instead. They
depend on Lance beta releases, which are published to `https://maven.lance.org`.
To use a beta, add both repositories alongside Maven Central:
```xml
<repositories>
<repository>
<id>lancedb</id>
<url>https://maven.fury.io/lancedb/</url>
</repository>
<repository>
<id>lance</id>
<url>https://maven.lance.org</url>
</repository>
</repositories>
```
For Gradle:
```kotlin
repositories {
mavenCentral()
maven { url = uri("https://maven.fury.io/lancedb/") }
maven { url = uri("https://maven.lance.org") }
}
```
Use an explicit version, including the full `-beta.N` suffix. Beta versions are
Maven releases, not `SNAPSHOT` versions.
## Configuration and Initialization
### LanceDB Cloud (legacy)
+9
View File
@@ -318,6 +318,15 @@
</plugins>
</build>
</profile>
<profile>
<id>deploy-to-fury</id>
<distributionManagement>
<repository>
<id>fury</id>
<url>https://maven.fury.io/lancedb/</url>
</repository>
</distributionManagement>
</profile>
<profile>
<id>deploy-to-ossrh</id>
<build>