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

192 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.
# 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
<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:
```bash
mvn clean deploy
```
## 🐙 GitHub Packages
### 1. pom.xml güncelleme:
```xml
<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):
```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
<distributionManagement>
<repository>
<id>file-repo</id>
<url>file:///shared/maven-repo</url>
</repository>
</distributionManagement>
```
### 2. Deploy:
```bash
mvn clean deploy
```
### 3. Diğer projelerde kullanım:
```xml
<repositories>
<repository>
<id>shared-repo</id>
<url>file:///shared/maven-repo</url>
</repository>
</repositories>
```
## 🐳 Docker Registry (JIB)
### 1. pom.xml'e JIB plugin ekleyin:
```xml
<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:
```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
<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:
```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`