mirror of
https://github.com/AdrianKuta/Tree-Data-Structure.git
synced 2025-09-14 14:44:21 +02:00
Migrate publishing to Sonatype s01 and Central Portal
- Updated build script to support publishing to Sonatype's s01.oss.sonatype.org, which is compatible with the new Maven Central Portal. - Prioritized Central Portal credentials (CENTRAL_USERNAME, CENTRAL_PASSWORD) over legacy OSSRH credentials. - Updated repository URLs for releases and snapshots to point to s01.oss.sonatype.org. - Added documentation in README.md explaining the new publishing setup, environment variables, and Gradle tasks.
This commit is contained in:
21
README.md
21
README.md
@@ -97,3 +97,24 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Publishing (Maven Central migration)
|
||||||
|
|
||||||
|
This project is configured to publish via Sonatype's s01.oss.sonatype.org (Nexus) which is compatible with the new Central (central.sonatype.com). The old oss.sonatype.org host is no longer used.
|
||||||
|
|
||||||
|
Environment variables supported by the build:
|
||||||
|
- CENTRAL_USERNAME / CENTRAL_PASSWORD — Central Portal user/token (preferred)
|
||||||
|
- OSSRH_USERNAME / OSSRH_PASSWORD — legacy credentials (fallback)
|
||||||
|
- SIGNING_KEY_ID / SIGNING_KEY / SIGNING_PASSWORD — PGP signing (ASCII-armored key)
|
||||||
|
- SNAPSHOT — set to true to append -SNAPSHOT to version
|
||||||
|
|
||||||
|
Gradle tasks:
|
||||||
|
- Publish all publications to Sonatype: `./gradlew publishAllPublicationsToSonatypeS01Repository`
|
||||||
|
- Or, standard publish (selects snapshots vs releases by version): `./gradlew publish`
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
- Releases are uploaded to: https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/
|
||||||
|
- Snapshots are uploaded to: https://s01.oss.sonatype.org/content/repositories/snapshots/
|
||||||
|
- Staging/release close and promote are handled by Sonatype. If you use CI, set the env vars in your secrets.
|
||||||
|
@@ -21,6 +21,10 @@ if (secretFile.exists()) {
|
|||||||
project.ext[name.toString()] = value
|
project.ext[name.toString()] = value
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// Prefer Central Portal credentials via environment variables
|
||||||
|
project.ext["centralUsername"] = System.getenv("CENTRAL_USERNAME")
|
||||||
|
project.ext["centralPassword"] = System.getenv("CENTRAL_PASSWORD")
|
||||||
|
// Fallback legacy OSSRH credentials (still supported on s01)
|
||||||
project.ext["ossrhUsername"] = System.getenv("OSSRH_USERNAME")
|
project.ext["ossrhUsername"] = System.getenv("OSSRH_USERNAME")
|
||||||
project.ext["ossrhPassword"] = System.getenv("OSSRH_PASSWORD")
|
project.ext["ossrhPassword"] = System.getenv("OSSRH_PASSWORD")
|
||||||
project.ext["sonatypeStagingProfileId"] = System.getenv("SONATYPE_STAGING_PROFILE_ID")
|
project.ext["sonatypeStagingProfileId"] = System.getenv("SONATYPE_STAGING_PROFILE_ID")
|
||||||
@@ -74,15 +78,29 @@ publishing {
|
|||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
maven {
|
maven {
|
||||||
name = "Sonatype"
|
name = "SonatypeS01"
|
||||||
val releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2"
|
// s01 is the supported Nexus host for Central publishing via Maven-compatible uploads
|
||||||
val snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots"
|
val releasesRepoUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/"
|
||||||
|
val snapshotsRepoUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots/"
|
||||||
url = uri(if (version.toString().endsWith("SNAPSHOT")) snapshotsRepoUrl else releasesRepoUrl)
|
url = uri(if (version.toString().endsWith("SNAPSHOT")) snapshotsRepoUrl else releasesRepoUrl)
|
||||||
credentials {
|
credentials {
|
||||||
|
// Prefer Central Portal credentials when provided, fallback to legacy OSSRH credentials
|
||||||
|
val centralUsername: String? by project
|
||||||
|
val centralPassword: String? by project
|
||||||
|
val CENTRAL_USERNAME: String? by project
|
||||||
|
val CENTRAL_PASSWORD: String? by project
|
||||||
val ossrhUsername: String? by project
|
val ossrhUsername: String? by project
|
||||||
val ossrhPassword: String? by project
|
val ossrhPassword: String? by project
|
||||||
username = ossrhUsername
|
username = centralUsername
|
||||||
password = ossrhPassword
|
?: CENTRAL_USERNAME
|
||||||
|
?: ossrhUsername
|
||||||
|
?: System.getenv("CENTRAL_USERNAME")
|
||||||
|
?: System.getenv("OSSRH_USERNAME")
|
||||||
|
password = centralPassword
|
||||||
|
?: CENTRAL_PASSWORD
|
||||||
|
?: ossrhPassword
|
||||||
|
?: System.getenv("CENTRAL_PASSWORD")
|
||||||
|
?: System.getenv("OSSRH_PASSWORD")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user