Files
spring-boot-starter-erato-r…/PUBLISHING.md
2025-09-27 17:54:04 +03:00

3.7 KiB
Raw Permalink Blame History

Erato Rate Limit Starter - Yayınlama Rehberi

🏠 Local Maven Repository

En basit yöntem - diğer projelerinizde hemen kullanabilirsiniz:

mvn clean install

🏢 Private Nexus/Artifactory

1. pom.xml'e distribution management ekleyin:

<distributionManagement>
    <repository>
        <id>erato-releases</id>
        <url>https://nexus.erato.com.tr/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
        <id>erato-snapshots</id>
        <url>https://nexus.erato.com.tr/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>

2. Deploy:

mvn clean deploy

🐙 GitHub Packages

1. pom.xml güncelleme:

<distributionManagement>
    <repository>
        <id>github</id>
        <n>GitHub Packages</n>
        <url>https://maven.pkg.github.com/erato/rate-limit-starter</url>
    </repository>
</distributionManagement>

2. GitHub Actions workflow (.github/workflows/maven-publish.yml):

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:

<distributionManagement>
    <repository>
        <id>file-repo</id>
        <url>file:///shared/maven-repo</url>
    </repository>
</distributionManagement>

2. Deploy:

mvn clean deploy

3. Diğer projelerde kullanım:

<repositories>
    <repository>
        <id>shared-repo</id>
        <url>file:///shared/maven-repo</url>
    </repository>
</repositories>

🐳 Docker Registry (JIB)

1. pom.xml'e JIB plugin ekleyin:

<plugin>
    <groupId>com.google.cloud.tools</groupId>
    <artifactId>jib-maven-plugin</artifactId>
    <version>3.3.2</version>
    <configuration>
        <to>
            <image>registry.erato.com.tr/rate-limit-starter:${project.version}</image>
        </to>
    </configuration>
</plugin>

2. Build & Push:

mvn compile jib:build

📦 Manual JAR Distribution

1. JAR oluştur:

mvn clean package

2. Diğer projelerde kullanım:

# 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
<dependency>
    <groupId>tr.com.erato</groupId>
    <artifactId>erato-rate-limit-spring-boot-starter</artifactId>
    <version>1.0.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/lib/erato-rate-limit-spring-boot-starter-1.0.0.jar</systemPath>
</dependency>

🔑 Güvenlik

Repository credentials için environment variables kullanın:

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:

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