141 lines
3.4 KiB
Markdown
141 lines
3.4 KiB
Markdown
# Kotlin / Gradle Mirror Setup with Nexus (Air‑Gapped Environment)
|
||
|
||
This document summarizes the steps performed to configure a
|
||
Kotlin/Gradle package mirror using Sonatype Nexus Repository in an
|
||
offline (air‑gapped) Ubuntu server environment. The server already has
|
||
Docker installed and Nexus is accessible via:
|
||
|
||
https://mirror.mahgit.ir/
|
||
|
||
The steps below cover the process from **creating the repository** to
|
||
**testing Gradle builds in the offline environment**.
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
# 1. Create the Repository
|
||
|
||
1. Log in to the Nexus UI:
|
||
|
||
https://mirror.mahgit.ir/
|
||
|
||
2. Navigate to:
|
||
|
||
Administration → Repositories → Create repository
|
||
|
||
3. Select:
|
||
|
||
**maven2 (hosted)**
|
||
|
||
4. Configure the repository:
|
||
|
||
| Setting | Value |
|
||
|-------------------|----------------|
|
||
| Name | kotlin-mirror |
|
||
| Version policy | Release |
|
||
| Layout policy | Strict |
|
||
| Deployment policy | Allow redeploy |
|
||
|
||
5. Click **Save**.
|
||
|
||
This repository will host Kotlin and Gradle artifacts for the offline
|
||
environment.
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
# 2. Repository URL
|
||
|
||
After creation, the repository is accessible at:
|
||
|
||
https://mirror.mahgit.ir/repository/kotlin-mirror/
|
||
|
||
Example artifact URL:
|
||
|
||
https://mirror.mahgit.ir/repository/kotlin-mirror/org/jetbrains/kotlin/kotlin-stdlib/1.9.0/kotlin-stdlib-1.9.0.jar
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
# 3. Upload the Artifact
|
||
|
||
Because the server has **no internet access**, artifacts must be
|
||
downloaded externally and uploaded manually.
|
||
|
||
Steps:
|
||
|
||
1. In Nexus UI navigate to:
|
||
|
||
Browse → kotlin-mirror → Upload
|
||
|
||
2. Fill the fields:
|
||
|
||
| Field | Value |
|
||
|-----------|----------------------|
|
||
| Group | org.jetbrains.kotlin |
|
||
| Artifact | kotlin-stdlib |
|
||
| Version | 1.9.0 |
|
||
| Packaging | jar |
|
||
|
||
3. Upload the following files:
|
||
|
||
- kotlin-stdlib-1.9.0.jar
|
||
- kotlin-stdlib-1.9.0.pom
|
||
|
||
4. Click **Upload**.
|
||
|
||
The artifact will now be stored inside the repository.
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
# 4. Test Artifact Download
|
||
|
||
Open the artifact URL in a browser:
|
||
|
||
https://mirror.mahgit.ir/repository/kotlin-mirror/org/jetbrains/kotlin/kotlin-stdlib/1.9.0/kotlin-stdlib-1.9.0.jar
|
||
|
||
If the file downloads successfully, the repository is working correctly.
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
# 5. Configure Gradle to Use the Mirror
|
||
|
||
Modify your Gradle project configuration to use the Nexus mirror instead
|
||
of Maven Central.
|
||
|
||
Example `build.gradle` configuration:
|
||
|
||
``` groovy
|
||
repositories {
|
||
maven {
|
||
url "https://mirror.mahgit.ir/repository/kotlin-mirror/"
|
||
}
|
||
}
|
||
|
||
dependencies {
|
||
implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.0"
|
||
}
|
||
```
|
||
|
||
Gradle will now resolve dependencies from the Nexus mirror.
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
# 6. Test Build in Offline Environment
|
||
|
||
Run the Gradle build on the offline server:
|
||
|
||
``` bash
|
||
gradle build
|
||
```
|
||
|
||
Expected behavior:
|
||
|
||
Gradle resolves dependencies only from the Nexus mirror:
|
||
|
||
Gradle → Nexus Mirror → Local Artifact Storage
|
||
|
||
If the build completes successfully, the mirror setup is functioning
|
||
correctly in the air‑gapped environment.
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
End of document.
|