From b1b9a36139e02a9eb1f8faad43fbdb822bd194a5 Mon Sep 17 00:00:00 2001 From: Canos Date: Sat, 27 Sep 2025 17:54:04 +0300 Subject: [PATCH] Add PUBLISHING.md --- PUBLISHING.md | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 PUBLISHING.md diff --git a/PUBLISHING.md b/PUBLISHING.md new file mode 100644 index 0000000..607648f --- /dev/null +++ b/PUBLISHING.md @@ -0,0 +1,192 @@ +# Erato Rate Limit Starter - Yayınlama Rehberi + +## 🏠 Local Maven Repository + +En basit yöntem - diğer projelerinizde hemen kullanabilirsiniz: + +```bash +mvn clean install +``` + +## 🏢 Private Nexus/Artifactory + +### 1. pom.xml'e distribution management ekleyin: + +```xml + + + erato-releases + https://nexus.erato.com.tr/repository/maven-releases/ + + + erato-snapshots + https://nexus.erato.com.tr/repository/maven-snapshots/ + + +``` + +### 2. Deploy: + +```bash +mvn clean deploy +``` + +## 🐙 GitHub Packages + +### 1. pom.xml güncelleme: + +```xml + + + github + GitHub Packages + https://maven.pkg.github.com/erato/rate-limit-starter + + +``` + +### 2. GitHub Actions workflow (.github/workflows/maven-publish.yml): + +```yaml +name: Publish Package + +on: + release: + types: [created] + +jobs: + publish: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + + - name: Publish to GitHub Packages + run: mvn deploy + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} +``` + +## 🗂️ Shared File System + +Küçük takımlar için basit çözüm: + +### 1. pom.xml: + +```xml + + + file-repo + file:///shared/maven-repo + + +``` + +### 2. Deploy: + +```bash +mvn clean deploy +``` + +### 3. Diğer projelerde kullanım: + +```xml + + + shared-repo + file:///shared/maven-repo + + +``` + +## 🐳 Docker Registry (JIB) + +### 1. pom.xml'e JIB plugin ekleyin: + +```xml + + com.google.cloud.tools + jib-maven-plugin + 3.3.2 + + + registry.erato.com.tr/rate-limit-starter:${project.version} + + + +``` + +### 2. Build & Push: + +```bash +mvn compile jib:build +``` + +## 📦 Manual JAR Distribution + +### 1. JAR oluştur: + +```bash +mvn clean package +``` + +### 2. Diğer projelerde kullanım: + +```bash +# JAR'ı lib klasörüne kopyala +mkdir -p lib +cp erato-rate-limit-spring-boot-starter-1.0.0.jar lib/ + +# pom.xml'e system dependency ekle + + tr.com.erato + erato-rate-limit-spring-boot-starter + 1.0.0 + system + ${project.basedir}/lib/erato-rate-limit-spring-boot-starter-1.0.0.jar + +``` + +## 🔑 Güvenlik + +Repository credentials için environment variables kullanın: + +```bash +export NEXUS_USERNAME=your-username +export NEXUS_PASSWORD=your-password +mvn deploy +``` + +Veya `~/.m2/settings.xml` dosyasında saklayın. + +## 🏷️ Versioning + +Semantic versioning kullanın: + +- **1.0.0** - İlk stable release +- **1.0.1** - Bug fixes +- **1.1.0** - Yeni özellikler (backward compatible) +- **2.0.0** - Breaking changes + +Version güncelleme: + +```bash +mvn versions:set -DnewVersion=1.0.1 +mvn versions:commit +``` + +## 📋 Release Checklist + +- [ ] Testler geçiyor mu? `mvn test` +- [ ] Javadoc complete mi? `mvn javadoc:javadoc` +- [ ] README güncel mi? +- [ ] CHANGELOG eklendi mi? +- [ ] Version number doğru mu? +- [ ] Tag oluşturuldu mu? `git tag v1.0.0` +- [ ] Deploy edildi mi? `mvn deploy` \ No newline at end of file