Files
how-to-use-mahgit-mirror/README.md
2026-03-09 19:20:56 +00:00

153 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Kotlin / Gradle Mirror Setup with Nexus (AirGapped Environment)
This document summarizes the steps performed to configure a
Kotlin/Gradle package mirror using Sonatype Nexus Repository in an
offline (airgapped) 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**.
------------------------------------------------------------------------
# 2. 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.
------------------------------------------------------------------------
# 3. 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
------------------------------------------------------------------------
# 4. 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.
------------------------------------------------------------------------
# 5. 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.
------------------------------------------------------------------------
# 6. 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.
------------------------------------------------------------------------
# 7. Prepare for Offline Dependency Usage
Ensure that all required dependencies are uploaded to Nexus beforehand.\
For Kotlin projects this may include additional dependencies such as:
- kotlin-stdlib-common
- org.jetbrains.annotations
These must also be downloaded externally and uploaded to the mirror.
------------------------------------------------------------------------
# 8. 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 airgapped environment.
------------------------------------------------------------------------
End of document.