# 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`