Skip to content

Commit f0eefa5

Browse files
committed
Migrate the build system from Maven to Gradle
1 parent 9aafa70 commit f0eefa5

16 files changed

+628
-335
lines changed

.github/dependabot.yml

Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,12 @@
11
version: 2
22
updates:
3-
- package-ecosystem: "maven"
3+
- package-ecosystem: "gradle"
44
directory: "/"
55
schedule:
66
interval: "weekly"
77
day: "saturday"
88
time: "06:00"
99
timezone: "Etc/UTC"
10-
groups:
11-
java-test-dependencies:
12-
patterns:
13-
- "org.junit.jupiter:*"
14-
maven-build-plugins:
15-
patterns:
16-
- "org.apache.maven.plugins:*"
17-
- "org.sonatype.plugins:*"
18-
java-production-dependencies:
19-
patterns:
20-
- "*"
21-
exclude-patterns:
22-
- "org.openjfx:*"
23-
- "org.apache.maven.plugins:*"
24-
- "org.junit.jupiter:*"
25-
- "org.sonatype.plugins:*"
2610

2711
- package-ecosystem: "github-actions"
2812
directory: "/" # even for `.github/workflows`
Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
name: Publish libayatana-appindicator-java-full to Maven Central
2+
23
on:
34
release:
45
types: [published]
@@ -11,25 +12,41 @@ jobs:
1112
publish:
1213
runs-on: ubuntu-latest
1314
if: startsWith(github.ref, 'refs/tags/') # only allow publishing tagged versions
15+
1416
steps:
1517
- uses: actions/checkout@v4
1618
with:
17-
ref: 'libayatana-appindicator-full'
18-
- uses: actions/setup-java@v4
19+
ref: 'libayatana-appindicator-full'
20+
21+
- name: Set up Java
22+
uses: actions/setup-java@v4
1923
with:
24+
java-version: '22'
2025
distribution: 'zulu'
21-
java-version: 22
22-
cache: 'maven'
23-
server-id: ossrh
24-
server-username: MAVEN_USERNAME
25-
server-password: MAVEN_PASSWORD
26-
gpg-private-key: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
27-
gpg-passphrase: MAVEN_GPG_PASSPHRASE # env variable for GPG private key passphrase
28-
- name: Enforce project version ${{ github.event.release.tag_name }}
29-
run: mvn versions:set -B -DnewVersion="${{ github.event.release.tag_name }}"
30-
- name: Deploy
31-
run: mvn deploy -B -DskipTests -Psign,deploy-central --no-transfer-progress
26+
27+
- name: Setup Gradle
28+
uses: gradle/actions/setup-gradle@v4
29+
30+
- name: Import GPG key
31+
run: |
32+
echo "$GPG_SIGNING_KEY_PW" | gpg --batch --import --yes --passphrase-fd 0 <(echo -n "$GPG_SIGNING_KEY_B64" | base64 --decode)
33+
env:
34+
GPG_SIGNING_KEY_B64: ${{ secrets.GPG_PRIVATE_KEY_B64 }}
35+
GPG_SIGNING_KEY_PW: ${{ secrets.GPG_PASSPHRASE }}
36+
37+
- name: Setup GPG key information
38+
run: |
39+
mkdir -p ~/.gradle
40+
echo "signing.gnupg.passphrase=${GPG_SIGNING_KEY_PW}" >> ~/.gradle/gradle.properties
41+
env:
42+
GPG_SIGNING_KEY_PW: ${{ secrets.GPG_PASSPHRASE }}
43+
44+
- name: Build package
45+
run: ./gradlew clean build
46+
env:
47+
48+
- name: Publish package
49+
run: ./gradlew publishToSonatype closeSonatypeStagingRepository
3250
env:
33-
MAVEN_USERNAME: ${{ secrets.NEXUS_USERNAME }}
34-
MAVEN_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
35-
MAVEN_GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }}
51+
SONATYPE_USERNAME: ${{ secrets.NEXUS_USERNAME }}
52+
SONATYPE_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}

.github/workflows/publish-maven.yml

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
name: Publish libappindicator-gtk3-java-full to Maven Central
2+
23
on:
34
release:
45
types: [published]
@@ -11,25 +12,41 @@ jobs:
1112
publish:
1213
runs-on: ubuntu-latest
1314
if: startsWith(github.ref, 'refs/tags/') # only allow publishing tagged versions
15+
1416
steps:
1517
- uses: actions/checkout@v4
1618
with:
17-
ref: 'develop'
18-
- uses: actions/setup-java@v4
19+
ref: 'develop'
20+
21+
- name: Set up Java
22+
uses: actions/setup-java@v4
1923
with:
24+
java-version: '22'
2025
distribution: 'zulu'
21-
java-version: 22
22-
cache: 'maven'
23-
server-id: ossrh
24-
server-username: MAVEN_USERNAME
25-
server-password: MAVEN_PASSWORD
26-
gpg-private-key: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
27-
gpg-passphrase: MAVEN_GPG_PASSPHRASE # env variable for GPG private key passphrase
28-
- name: Enforce project version ${{ github.event.release.tag_name }}
29-
run: mvn versions:set -B -DnewVersion="${{ github.event.release.tag_name }}"
30-
- name: Deploy
31-
run: mvn deploy -B -DskipTests -Psign,deploy-central --no-transfer-progress
26+
27+
- name: Setup Gradle
28+
uses: gradle/actions/setup-gradle@v4
29+
30+
- name: Import GPG key
31+
run: |
32+
echo "$GPG_SIGNING_KEY_PW" | gpg --batch --import --yes --passphrase-fd 0 <(echo -n "$GPG_SIGNING_KEY_B64" | base64 --decode)
33+
env:
34+
GPG_SIGNING_KEY_B64: ${{ secrets.GPG_PRIVATE_KEY_B64 }}
35+
GPG_SIGNING_KEY_PW: ${{ secrets.GPG_PASSPHRASE }}
36+
37+
- name: Setup GPG key information
38+
run: |
39+
mkdir -p ~/.gradle
40+
echo "signing.gnupg.passphrase=${GPG_SIGNING_KEY_PW}" >> ~/.gradle/gradle.properties
41+
env:
42+
GPG_SIGNING_KEY_PW: ${{ secrets.GPG_PASSPHRASE }}
43+
44+
- name: Build package
45+
run: ./gradlew clean build
46+
env:
47+
48+
- name: Publish package
49+
run: ./gradlew publishToSonatype closeSonatypeStagingRepository
3250
env:
33-
MAVEN_USERNAME: ${{ secrets.NEXUS_USERNAME }}
34-
MAVEN_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
35-
MAVEN_GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }}
51+
SONATYPE_USERNAME: ${{ secrets.NEXUS_USERNAME }}
52+
SONATYPE_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
name: Publish libappindicator-gtk3-java-minimal to Maven Central
2+
23
on:
34
release:
45
types: [published]
@@ -11,25 +12,41 @@ jobs:
1112
publish:
1213
runs-on: ubuntu-latest
1314
if: startsWith(github.ref, 'refs/tags/') # only allow publishing tagged versions
15+
1416
steps:
1517
- uses: actions/checkout@v4
1618
with:
17-
ref: 'minimal'
18-
- uses: actions/setup-java@v4
19+
ref: 'minimal'
20+
21+
- name: Set up Java
22+
uses: actions/setup-java@v4
1923
with:
24+
java-version: '22'
2025
distribution: 'zulu'
21-
java-version: 22
22-
cache: 'maven'
23-
server-id: ossrh
24-
server-username: MAVEN_USERNAME
25-
server-password: MAVEN_PASSWORD
26-
gpg-private-key: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
27-
gpg-passphrase: MAVEN_GPG_PASSPHRASE # env variable for GPG private key passphrase
28-
- name: Enforce project version ${{ github.event.release.tag_name }}
29-
run: mvn versions:set -B -DnewVersion="${{ github.event.release.tag_name }}"
30-
- name: Deploy
31-
run: mvn deploy -B -DskipTests -Psign,deploy-central --no-transfer-progress
26+
27+
- name: Setup Gradle
28+
uses: gradle/actions/setup-gradle@v4
29+
30+
- name: Import GPG key
31+
run: |
32+
echo "$GPG_SIGNING_KEY_PW" | gpg --batch --import --yes --passphrase-fd 0 <(echo -n "$GPG_SIGNING_KEY_B64" | base64 --decode)
33+
env:
34+
GPG_SIGNING_KEY_B64: ${{ secrets.GPG_PRIVATE_KEY_B64 }}
35+
GPG_SIGNING_KEY_PW: ${{ secrets.GPG_PASSPHRASE }}
36+
37+
- name: Setup GPG key information
38+
run: |
39+
mkdir -p ~/.gradle
40+
echo "signing.gnupg.passphrase=${GPG_SIGNING_KEY_PW}" >> ~/.gradle/gradle.properties
41+
env:
42+
GPG_SIGNING_KEY_PW: ${{ secrets.GPG_PASSPHRASE }}
43+
44+
- name: Build package
45+
run: ./gradlew clean build
46+
env:
47+
48+
- name: Publish package
49+
run: ./gradlew publishToSonatype closeSonatypeStagingRepository
3250
env:
33-
MAVEN_USERNAME: ${{ secrets.NEXUS_USERNAME }}
34-
MAVEN_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}
35-
MAVEN_GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }}
51+
SONATYPE_USERNAME: ${{ secrets.NEXUS_USERNAME }}
52+
SONATYPE_PASSWORD: ${{ secrets.NEXUS_PASSWORD }}

.gitignore

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
*.class
22
*.jar
33

4-
# Maven #
5-
target/
6-
pom.xml.versionsBackup
4+
# Gradle
5+
.gradle
6+
build/
7+
!gradle/wrapper/gradle-wrapper.jar
8+
!**/src/main/**/build/
9+
!**/src/test/**/build/
710

811
# IntelliJ Settings Files (https://intellij-support.jetbrains.com/hc/en-us/articles/206544839-How-to-manage-projects-under-Version-Control-Systems) #
912
.idea/**/workspace.xml

.idea/gradle.xml

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ The bindings come in three flavors:
2626
- harfbuzz
2727

2828
[![Maven Central](https://img.shields.io/maven-central/v/org.purejava/libappindicator-gtk3-java-full.svg?label=Maven%20Central)](https://central.sonatype.com/search?q=libappindicator-gtk3-java-full&smo=true&namespace=org.purejava)
29+
### Gradle
30+
```groovy
31+
implementation group: 'org.purejava', name: 'libappindicator-gtk3-java-full', version: '1.4.2'
32+
```
33+
### Maven
2934
```java
3035
<dependency>
3136
<groupId>org.purejava</groupId>
@@ -107,6 +112,11 @@ As the according jar has a size of ~9,6M, I decided to provide a **reduced varia
107112
- APP_INDICATOR_STATUS_ATTENTION
108113

109114
[![Maven Central](https://img.shields.io/maven-central/v/org.purejava/libappindicator-gtk3-java-minimal.svg?label=Maven%20Central)](https://central.sonatype.com/search?q=libappindicator-gtk3-java-minimal&smo=true&namespace=org.purejava)
115+
### Gradle
116+
```groovy
117+
implementation group: 'org.purejava', name: 'libappindicator-gtk3-java-minimal', version: '1.4.2'
118+
```
119+
### Maven
110120
```java
111121
<dependency>
112122
<groupId>org.purejava</groupId>
@@ -126,6 +136,11 @@ Starting with version 1.1.0, the `minimal` artifact is compatible to libayatana-
126136
- harfbuzz
127137

128138
[![Maven Central](https://img.shields.io/maven-central/v/org.purejava/libayatana-appindicator-java-full.svg?label=Maven%20Central)](https://central.sonatype.com/search?q=libayatana-appindicator-java-full&smo=true&namespace=org.purejava)
139+
### Gradle
140+
```groovy
141+
implementation group: 'org.purejava', name: 'libayatana-appindicator-java-full', version: '1.4.2'
142+
```
143+
### Maven
129144
```java
130145
<dependency>
131146
<groupId>org.purejava</groupId>

0 commit comments

Comments
 (0)