add README
This commit is contained in:
152
README.md
Normal file
152
README.md
Normal file
@@ -0,0 +1,152 @@
|
||||
# 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**.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
# 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 air‑gapped environment.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
End of document.
|
||||
Reference in New Issue
Block a user