Создаю приложение похожее на Jira с функциональностью:
- Ведение проектной деятельности;
- "Архитектура как код";
- Подключение ИИ помощника.
За основную СУБД берем PostgreSQL 18:
- см. Базовые настройки в формате SQL
- см. Схема данных в формате SQL
- см. Схема данных в формате Plantuml
- см. Схема данных в формате SVG
ОС Debian Linux 13:
- см. Переменные окружения
- см. Dockerfile
- см. раздел 'postgres' в docker-compose.yml
ОС Alpine Linux 3.2.2 (легковеснее):
- см. Переменные окружения
- см. Dockerfile
- см. docker-ensure-initdb.sh
- см. docker-entrypoint.sh
- см. раздел 'postgres' в docker-compose.yml
# запуск контейнера
docker-compose --env-file data-scheme/postgres-18-debian/myjira.env up -d
# или (? проверить на запускаемость, особенно переменные окружения ?)
docker-compose --env-file data-scheme/postgres-18-alpine/postgres-18-alpine.env up -d
docker-compose down # Остановить контейнерПроект будем реализовывать с применением Spring Boot, на платформе Java 17 используя Zulu JDK FX.
- Spring Web;
- Spring Thymeleaf;
- PostgreSQL Driver;
- SpringData JPA;
- H2 Database;
- Spring Security;
- OAuth2 Client;
- Validation;
- Spring Boot DevTools;
- Docker Compose Support
- Flyway Migration;
- Lombok.
- ActivityLog.java
- Attachment.java
- Comment.java
- FileType.java
- Group.java
- Issue.java
- IssueLink.java
- IssueLinkType.java
- IssueStatus.java
- IssueType.java
- IssueWatcher.java
- NotificationQueue.java
- NotificationStatus.java
- NotificationTemplate.java
- Permission.java
- Priority.java
- Project.java
- ProjectIssueTypeWorkflowDefault.java
- ProjectMember.java
- Role.java
- RolePermission.java
- User.java
- UserGroup.java
- UserNotificationSetting.java
- Workflow.java
- WorkflowStatus.java
- WorkflowTransition.java
For further reference, please consider the following sections:
- Official Apache Maven documentation
- Spring Boot Maven Plugin Reference Guide
- Create an OCI image
- Spring Web
- Spring Data JPA
- Spring Security
- Validation
- Spring Boot DevTools
- Liquibase Migration
The following guides illustrate how to use some features concretely:
- Building a RESTful Web Service
- Serving Web Content with Spring MVC
- Building REST services with Spring
- Accessing Data with JPA
- Securing a Web Application
- Spring Boot and OAuth2
- Authenticating a User with LDAP
- Validation
Из-за дизайна Maven элементы наследуются от родительского POM к POM проекта.
Хотя большая часть наследования в порядке, оно также наследует нежелательные элементы, такие как <license> и <developers> от родителя.
Чтобы предотвратить это, POM проекта содержит пустые переопределения для этих элементов.
Если вы вручную переключаетесь на другого родителя и на самом деле хотите наследование, вам нужно удалить эти переопределения.