Compare commits

...

20 Commits

Author SHA1 Message Date
TakahashiNg ffdd64a1da fix: better build configuration
Release package / release (push) Failing after 3m34s
2026-03-23 00:44:16 +00:00
TakahashiNg a04e3353f8 fix: test
Release package / release (push) Failing after 3m58s
2026-03-23 00:32:14 +00:00
TakahashiNg 1416c61da1 Merge branch 'dev-order-service' of http://host.docker.internal:9780/takahashi/backend into dev-order-service
Release package / release (push) Successful in 4m41s
2026-03-22 15:20:39 +00:00
TakahashiNg 6b1368fc42 fix: disabled build 2026-03-22 15:20:01 +00:00
gitea-actions 2b993bdef4 chore: release [ci skip] 2026-03-22 15:16:46 +00:00
TakahashiNg 8da7877920 fix: test
Release package / release (push) Successful in 8m30s
2026-03-22 15:09:35 +00:00
gitea-actions 45e01a863b chore: release [ci skip] 2026-03-22 15:05:19 +00:00
TakahashiNg d851a49fc3 fix: better act config
Release package / release (push) Successful in 9m25s
2026-03-22 14:57:45 +00:00
gitea-actions 5cd79b10a2 chore: release [ci skip] 2026-03-22 14:51:12 +00:00
TakahashiNg 4f66008774 fix: test
Release package / release (push) Successful in 6m13s
2026-03-22 14:37:39 +00:00
TakahashiNg db13397063 fix: test
Release package / release (push) Has been cancelled
2026-03-22 14:14:42 +00:00
gitea-actions 89107bb5a8 chore: release [ci skip] 2026-03-22 14:11:24 +00:00
TakahashiNg ad77a3022c fix: test
Release package / release (push) Waiting to run
2026-03-22 14:07:03 +00:00
gitea-actions 9d900f8fb3 chore: release [ci skip] 2026-03-22 14:02:30 +00:00
TakahashiNg 2b6f8da6c2 Merge branch 'dev-order-service' of http://host.docker.internal:9780/takahashi/backend into dev-order-service
Release package / release (push) Waiting to run
2026-03-22 13:57:17 +00:00
TakahashiNg 9b2d90d290 fix: removed ignore file 2026-03-22 13:56:39 +00:00
gitea-actions d40c586299 chore: release [ci skip] 2026-03-22 13:45:28 +00:00
TakahashiNg 66df4488c0 fix: better image push
Release package / release (push) Successful in 9m58s
2026-03-22 13:40:54 +00:00
gitea-actions a3470a3b7a chore: release [ci skip] 2026-03-22 13:31:39 +00:00
TakahashiNg a320b6cd16 fix: test
Release package / release (push) Successful in 11m18s
2026-03-22 13:26:01 +00:00
20 changed files with 193 additions and 128 deletions
+4 -4
View File
@@ -4,7 +4,7 @@ services:
restart: unless-stopped restart: unless-stopped
network_mode: host network_mode: host
extra_hosts: extra_hosts:
- 'host.docker.internal:host-gateway' - "host.docker.internal:host-gateway"
environment: environment:
KAFKA_NODE_ID: 1 KAFKA_NODE_ID: 1
KAFKA_PROCESS_ROLES: broker,controller KAFKA_PROCESS_ROLES: broker,controller
@@ -13,7 +13,7 @@ services:
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
KAFKA_CONTROLLER_QUORUM_VOTERS: 1@localhost:9093 KAFKA_CONTROLLER_QUORUM_VOTERS: 1@localhost:9093
KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true' KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true"
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
kafdrop: kafdrop:
@@ -23,7 +23,7 @@ services:
- kafka - kafka
network_mode: host network_mode: host
extra_hosts: extra_hosts:
- 'host.docker.internal:host-gateway' - "host.docker.internal:host-gateway"
command: sh -c "sleep 5 && exec ./start-app" command: sh -c "sleep 5 && exec ./start-app"
environment: environment:
KAFKA_BROKERCONNECT: 'localhost:9092' KAFKA_BROKERCONNECT: "localhost:9092"
+2 -2
View File
@@ -11,5 +11,5 @@ services:
- ../..:/workspaces:cached - ../..:/workspaces:cached
network_mode: host network_mode: host
extra_hosts: extra_hosts:
- 'host.docker.internal:host-gateway' - "host.docker.internal:host-gateway"
command: sleep infinity command: sleep infinity
+2 -2
View File
@@ -5,9 +5,9 @@ services:
- POSTGRES_PASSWORD=password - POSTGRES_PASSWORD=password
network_mode: host network_mode: host
extra_hosts: extra_hosts:
- 'host.docker.internal:host-gateway' - "host.docker.internal:host-gateway"
volumes: volumes:
- postgres_data:/var/lib/postgresql/data - postgres_data:/var/lib/postgresql/data
volumes: volumes:
postgres_data: postgres_data:
+9 -9
View File
@@ -10,7 +10,7 @@ jobs:
release: release:
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
contents: write contents: write
steps: steps:
- uses: actions/checkout@v6 - uses: actions/checkout@v6
with: with:
@@ -19,15 +19,15 @@ jobs:
- name: Set up JDK - name: Set up JDK
uses: actions/setup-java@v5 uses: actions/setup-java@v5
with: with:
distribution: 'temurin' distribution: "temurin"
java-version: '25' java-version: "25"
- name: Log in to Gitea Container Registry - name: Log in to Gitea Container Registry
uses: docker/login-action@v3 uses: docker/login-action@v3
with: with:
registry: git.demonkernel.io.vn registry: git.demonkernel.io.vn
username: ${{ github.actor }} username: ${{ github.actor }}
password: ${{ secrets.ACCESS_TOKEN }} password: ${{ secrets.ACCESS_TOKEN }}
- uses: actions/setup-node@v6 - uses: actions/setup-node@v6
with: with:
@@ -42,16 +42,16 @@ jobs:
shell: bash shell: bash
run: | run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- name: Cache Maven packages - name: Cache Maven packages
uses: actions/cache@v3 uses: actions/cache@v4
with: with:
path: ~/.m2/repository path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: | restore-keys: |
${{ runner.os }}-maven- ${{ runner.os }}-maven-
- uses: actions/cache@v3 - uses: actions/cache@v4
name: Setup pnpm cache name: Setup pnpm cache
with: with:
path: ${{ env.STORE_PATH }} path: ${{ env.STORE_PATH }}
@@ -70,7 +70,7 @@ jobs:
- name: Commit & Push Changes - name: Commit & Push Changes
env: env:
MY_PAT_TOKEN: ${{ secrets.ACCESS_TOKEN }} MY_PAT_TOKEN: ${{ secrets.ACCESS_TOKEN }}
run: | run: |
if [ -n "$(git status --porcelain)" ]; then if [ -n "$(git status --porcelain)" ]; then
git config --global user.name "gitea-actions" git config --global user.name "gitea-actions"
@@ -82,4 +82,4 @@ jobs:
git commit -m "chore: release [ci skip]" git commit -m "chore: release [ci skip]"
git push origin HEAD:${{ github.ref_name }} git push origin HEAD:${{ github.ref_name }}
fi fi
+2 -1
View File
@@ -45,4 +45,5 @@ nb-configuration.xml
.certs/ .certs/
# NodeJS # NodeJS
/node_modules /node_modules
/.pnpm-store
+1 -1
View File
@@ -8,7 +8,7 @@
"@semantic-release/exec", "@semantic-release/exec",
{ {
"prepareCmd": "./mvnw versions:set -DnewVersion=${nextRelease.version}", "prepareCmd": "./mvnw versions:set -DnewVersion=${nextRelease.version}",
"publishCmd": "./mvnw clean package -Dquarkus.container-image.tag=${nextRelease.version} -DskipTests" "publishCmd": "./mvnw clean package -Dnative -Dquarkus.container-image.tag=${nextRelease.version} -DskipTests"
} }
], ],
["@saithodev/semantic-release-gitea", { ["@saithodev/semantic-release-gitea", {
+49
View File
@@ -0,0 +1,49 @@
# [1.0.0-dev.12](https://git.demonkernel.io.vn/FoodSurf/backend/compare/v1.0.0-dev.11...v1.0.0-dev.12) (2026-03-22)
### Bug Fixes
* test ([8da7877](https://git.demonkernel.io.vn/FoodSurf/backend/commit/8da7877920b552e1e2f325bb40ccb4eb9a9c0907))
# [1.0.0-dev.11](https://git.demonkernel.io.vn/FoodSurf/backend/compare/v1.0.0-dev.10...v1.0.0-dev.11) (2026-03-22)
### Bug Fixes
* better act config ([d851a49](https://git.demonkernel.io.vn/FoodSurf/backend/commit/d851a49fc3d831048eae6482aab1b915fb39f6da))
# [1.0.0-dev.10](https://git.demonkernel.io.vn/FoodSurf/backend/compare/v1.0.0-dev.9...v1.0.0-dev.10) (2026-03-22)
### Bug Fixes
* test ([4f66008](https://git.demonkernel.io.vn/FoodSurf/backend/commit/4f66008774e1bd338bc94dd58f9500310490d3f2))
* test ([db13397](https://git.demonkernel.io.vn/FoodSurf/backend/commit/db13397063c80ddf310510152bbdb397d98730b7))
# [1.0.0-dev.9](https://git.demonkernel.io.vn/FoodSurf/backend/compare/v1.0.0-dev.8...v1.0.0-dev.9) (2026-03-22)
### Bug Fixes
* test ([ad77a30](https://git.demonkernel.io.vn/FoodSurf/backend/commit/ad77a3022cd9f03749a764b91ee85942f9b696f9))
# [1.0.0-dev.8](https://git.demonkernel.io.vn/FoodSurf/backend/compare/v1.0.0-dev.7...v1.0.0-dev.8) (2026-03-22)
### Bug Fixes
* removed ignore file ([9b2d90d](https://git.demonkernel.io.vn/FoodSurf/backend/commit/9b2d90d29003090954b104b54e7ba723c0bae1f7))
# [1.0.0-dev.7](https://git.demonkernel.io.vn/FoodSurf/backend/compare/v1.0.0-dev.6...v1.0.0-dev.7) (2026-03-22)
### Bug Fixes
* better image push ([66df448](https://git.demonkernel.io.vn/FoodSurf/backend/commit/66df4488c0fd9b9bda1df72877d7ab6c4a075d84))
# [1.0.0-dev.6](https://git.demonkernel.io.vn/FoodSurf/backend/compare/v1.0.0-dev.5...v1.0.0-dev.6) (2026-03-22)
### Bug Fixes
* test ([a320b6c](https://git.demonkernel.io.vn/FoodSurf/backend/commit/a320b6cd162be6f09381698ee1551e7575c33c1c))
+16 -7
View File
@@ -1,5 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8" ?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.drinkool</groupId> <groupId>com.drinkool</groupId>
<artifactId>account-service</artifactId> <artifactId>account-service</artifactId>
@@ -10,9 +14,11 @@
<compiler-plugin.version>3.15.0</compiler-plugin.version> <compiler-plugin.version>3.15.0</compiler-plugin.version>
<maven.compiler.release>21</maven.compiler.release> <maven.compiler.release>21</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding
>UTF-8</project.reporting.outputEncoding>
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id> <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
<quarkus.platform.group-id>io.quarkus.platform</quarkus.platform.group-id> <quarkus.platform.group-id
>io.quarkus.platform</quarkus.platform.group-id>
<quarkus.platform.version>3.32.4</quarkus.platform.version> <quarkus.platform.version>3.32.4</quarkus.platform.version>
<skipITs>true</skipITs> <skipITs>true</skipITs>
<surefire-plugin.version>3.5.4</surefire-plugin.version> <surefire-plugin.version>3.5.4</surefire-plugin.version>
@@ -102,7 +108,8 @@
<configuration> <configuration>
<argLine>@{argLine}</argLine> <argLine>@{argLine}</argLine>
<systemPropertyVariables> <systemPropertyVariables>
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> <java.util.logging.manager
>org.jboss.logmanager.LogManager</java.util.logging.manager>
<maven.home>${maven.home}</maven.home> <maven.home>${maven.home}</maven.home>
</systemPropertyVariables> </systemPropertyVariables>
</configuration> </configuration>
@@ -121,8 +128,10 @@
<configuration> <configuration>
<argLine>@{argLine}</argLine> <argLine>@{argLine}</argLine>
<systemPropertyVariables> <systemPropertyVariables>
<native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path> <native.image.path
<java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager> >${project.build.directory}/${project.build.finalName}-runner</native.image.path>
<java.util.logging.manager
>org.jboss.logmanager.LogManager</java.util.logging.manager>
<maven.home>${maven.home}</maven.home> <maven.home>${maven.home}</maven.home>
</systemPropertyVariables> </systemPropertyVariables>
</configuration> </configuration>
@@ -2,46 +2,46 @@ package com.drinkool;
import com.drinkool.dtos.*; import com.drinkool.dtos.*;
import com.drinkool.models.Customer; import com.drinkool.models.Customer;
import jakarta.transaction.Transactional; import jakarta.transaction.Transactional;
import jakarta.ws.rs.*; import jakarta.ws.rs.*;
import jakarta.ws.rs.core.*; import jakarta.ws.rs.core.*;
@Path("/api") @Path("/api")
public class RestAPI { public class RestAPI {
@POST
@Path("/signup")
@Transactional
public Response signup(Signup input) {
Customer newCustomer = new Customer();
newCustomer.signup(input.name, input.phone, input.password); @POST
@Path("/signup")
@Transactional
public Response signup(Signup input) {
Customer newCustomer = new Customer();
return Response.status(Response.Status.CREATED).build(); newCustomer.signup(input.name, input.phone, input.password);
}
@POST return Response.status(Response.Status.CREATED).build();
@Path("/quickSignup") }
@Transactional
public Response quickSignup(QuickSignup input) {
Customer newCustomer = new Customer();
newCustomer.signup(input.phone); @POST
@Path("/quickSignup")
@Transactional
public Response quickSignup(QuickSignup input) {
Customer newCustomer = new Customer();
return Response.status(Response.Status.CREATED).build(); newCustomer.signup(input.phone);
}
@POST return Response.status(Response.Status.CREATED).build();
@Path("/login") }
public Response login(Login input) {
Customer customer = Customer.find("phone", input.phone).firstResult();
if (customer == null) @POST
throw new BadRequestException("InvalidPhoneNumber"); @Path("/login")
public Response login(Login input) {
Customer customer = Customer.find("phone", input.phone).firstResult();
if (!customer.login(input.password)) if (customer == null) throw new BadRequestException("InvalidPhoneNumber");
throw new BadRequestException("InvalidPassword");
return Response.accepted().build(); if (!customer.login(input.password)) throw new BadRequestException(
} "InvalidPassword"
);
return Response.accepted().build();
}
} }
@@ -1,6 +1,7 @@
package com.drinkool.dtos; package com.drinkool.dtos;
public class Login { public class Login {
public String phone;
public String password; public String phone;
public String password;
} }
@@ -1,5 +1,6 @@
package com.drinkool.dtos; package com.drinkool.dtos;
public class QuickSignup { public class QuickSignup {
public String phone;
public String phone;
} }
@@ -1,7 +1,8 @@
package com.drinkool.dtos; package com.drinkool.dtos;
public class Signup { public class Signup {
public String name;
public String phone; public String name;
public String password; public String phone;
public String password;
} }
@@ -4,6 +4,4 @@ import jakarta.persistence.*;
@Entity @Entity
@Table(name = "customer") @Table(name = "customer")
public class Customer extends User { public class Customer extends User {}
}
@@ -1,56 +1,54 @@
package com.drinkool.models; package com.drinkool.models;
import com.drinkool.utils.PhoneValidator;
import com.password4j.Password;
import io.quarkus.hibernate.orm.panache.PanacheEntity; import io.quarkus.hibernate.orm.panache.PanacheEntity;
import jakarta.persistence.*; import jakarta.persistence.*;
import jakarta.transaction.*; import jakarta.transaction.*;
import jakarta.ws.rs.BadRequestException; import jakarta.ws.rs.BadRequestException;
import java.util.UUID; import java.util.UUID;
import com.drinkool.utils.PhoneValidator;
import com.password4j.Password;
@Entity @Entity
@Inheritance(strategy = InheritanceType.JOINED) @Inheritance(strategy = InheritanceType.JOINED)
@Table(name = "users") @Table(name = "users")
public abstract class User extends PanacheEntity { public abstract class User extends PanacheEntity {
@Column(nullable = false)
public String name;
@Column(nullable = false) @Column(nullable = false)
public String phone; public String name;
@Column(nullable = false, length = 1024) @Column(nullable = false)
public String hashedPassword; public String phone;
public User() { @Column(nullable = false, length = 1024)
super(); public String hashedPassword;
}
@Transactional public User() {
public void signup(String phone) { super();
this.signup(phone, phone, UUID.randomUUID().toString().substring(0, 32)); }
}
@Transactional @Transactional
public void signup(String name, String phone, String rawPassword) { public void signup(String phone) {
this.name = name; this.signup(phone, phone, UUID.randomUUID().toString().substring(0, 32));
}
if (!PhoneValidator.isValidInternationalPhone(phone)) { @Transactional
throw new BadRequestException("InvalidPhoneNumber"); public void signup(String name, String phone, String rawPassword) {
} else { this.name = name;
this.phone = phone;
}
this.hashedPassword = Password.hash(rawPassword).withArgon2().getResult(); if (!PhoneValidator.isValidInternationalPhone(phone)) {
throw new BadRequestException("InvalidPhoneNumber");
} else {
this.phone = phone;
}
this.persist(); this.hashedPassword = Password.hash(rawPassword).withArgon2().getResult();
}
public boolean login(String rawPassword) { this.persist();
if (this.hashedPassword == null) }
return false;
return Password.check(rawPassword, this.hashedPassword).withArgon2(); public boolean login(String rawPassword) {
} if (this.hashedPassword == null) return false;
}
return Password.check(rawPassword, this.hashedPassword).withArgon2();
}
}
@@ -4,15 +4,17 @@ import com.google.i18n.phonenumbers.*;
import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber; import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;
public class PhoneValidator { public class PhoneValidator {
private static final PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance();
public static boolean isValidInternationalPhone(String phone) { private static final PhoneNumberUtil phoneUtil =
try { PhoneNumberUtil.getInstance();
PhoneNumber numberProto = phoneUtil.parse(phone, "VN");
return phoneUtil.isValidNumber(numberProto); public static boolean isValidInternationalPhone(String phone) {
} catch (NumberParseException e) { try {
return false; PhoneNumber numberProto = phoneUtil.parse(phone, "VN");
}
} return phoneUtil.isValidNumber(numberProto);
} catch (NumberParseException e) {
return false;
}
}
} }
@@ -9,8 +9,10 @@ quarkus.hibernate-orm.database.generation=update
# URL của Gitea Registry (thường là gitea.yourdomain.com) # URL của Gitea Registry (thường là gitea.yourdomain.com)
quarkus.container-image.registry=git.demonkernel.io.vn quarkus.container-image.registry=git.demonkernel.io.vn
quarkus.container-image.group=foodsurf/backend quarkus.container-image.group=foodsurf
quarkus.container-image.name=auth-service quarkus.container-image.name=account-service
quarkus.container-image.push=true quarkus.container-image.push=true
quarkus.container-image.build=true quarkus.container-image.build=true
quarkus.container-image.builder=docker quarkus.container-image.builder=docker
quarkus.container-image.tag=latest
quarkus.native.container-build=true
@@ -4,5 +4,5 @@ import io.quarkus.test.junit.QuarkusIntegrationTest;
@QuarkusIntegrationTest @QuarkusIntegrationTest
class GreetingResourceIT extends GreetingResourceTest { class GreetingResourceIT extends GreetingResourceTest {
// Execute the same tests but in packaged mode. // Execute the same tests but in packaged mode.
} }
@@ -1,20 +1,21 @@
package com.drinkool; package com.drinkool;
import io.quarkus.test.junit.QuarkusTest;
import org.junit.jupiter.api.Test;
import static io.restassured.RestAssured.given; import static io.restassured.RestAssured.given;
import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.is;
import io.quarkus.test.junit.QuarkusTest;
import org.junit.jupiter.api.Test;
@QuarkusTest @QuarkusTest
class GreetingResourceTest { class GreetingResourceTest {
@Test
void testHelloEndpoint() {
given()
.when().get("/hello")
.then()
.statusCode(200)
.body(is("Hello from Quarkus REST"));
}
} @Test
void testHelloEndpoint() {
given()
.when()
.get("/hello")
.then()
.statusCode(200)
.body(is("Hello from Quarkus REST"));
}
}
+1 -1
View File
@@ -3,7 +3,7 @@
"description": "", "description": "",
"scripts": { "scripts": {
"release": "semantic-release", "release": "semantic-release",
"format": "prettier --write \"./**/*.{java,yaml,json,xml}\"" "format": "prettier --write \"./**/*.{java,yaml,json,xml}\" \"./**/.*rc\""
}, },
"keywords": [], "keywords": [],
"author": "DemonKernel", "author": "DemonKernel",
+8 -6
View File
@@ -1,11 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8" ?>
<project xmlns="http://maven.apache.org/POM/4.0.0" <project
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.drinkool</groupId> <groupId>com.drinkool</groupId>
<artifactId>drinkool</artifactId> <artifactId>drinkool</artifactId>
<version>1.0.0-SNAPSHOT</version> <version>1.0.0-dev.12</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<properties> <properties>
<maven.compiler.source>17</maven.compiler.source> <maven.compiler.source>17</maven.compiler.source>
@@ -27,4 +29,4 @@
</dependency> </dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
</project> </project>