https://github.com/maxbarsukov-itmo/mispi-3
π· ΠΠΈΠ‘ΠΠ: ΠΠ°Π±ΠΎΡΠ°ΡΠΎΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° β3
https://github.com/maxbarsukov-itmo/mispi-3
apache-ant itmo java junit4 laboratory-work maxbarsukov mispi web
Last synced: 18 days ago
JSON representation
π· ΠΠΈΠ‘ΠΠ: ΠΠ°Π±ΠΎΡΠ°ΡΠΎΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° β3
- Host: GitHub
- URL: https://github.com/maxbarsukov-itmo/mispi-3
- Owner: maxbarsukov-itmo
- License: mit
- Created: 2024-05-02T17:06:29.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-05-08T12:50:42.000Z (about 2 years ago)
- Last Synced: 2025-07-28T07:36:43.225Z (10 months ago)
- Topics: apache-ant, itmo, java, junit4, laboratory-work, maxbarsukov, mispi, web
- Language: Java
- Homepage: https://se.ifmo.ru/courses/software-engineering-basics#lab3
- Size: 28.2 MB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ΠΠ°Π±ΠΎΡΠ°ΡΠΎΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° 3
## ΠΠ°ΡΠΈΠ°Π½Ρ `1576`

> What do you call a really old ant? ~~An **ant**ique~~ Apache Ant
|.pdf|.docx|
|-|-|
| [report](./docs/report.pdf) | [report](./docs/report.docx) |
---
## ΠΠ°Π΄Π°Π½ΠΈΠ΅
ΠΠ°ΠΏΠΈΡΠ°ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π΄Π»Ρ ΡΡΠΈΠ»ΠΈΡΡ [Apache Ant](http://ant.apache.org/), ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ, ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΡ Π² jar-Π°ΡΡ
ΠΈΠ² ΠΊΠΎΠ΄Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈΠ· [Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ β3](https://se.ifmo.ru/courses/web#lab3) ΠΏΠΎ Π΄ΠΈΡΡΠΈΠΏΠ»ΠΈΠ½Π΅ __"ΠΠ΅Π±-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅"__.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΡΠ°ΠΏ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΡΠ΄Π΅Π»Π΅Π½ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Π±Π»ΠΎΠΊ ΡΡΠ΅Π½Π°ΡΠΈΡ; Π²ΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΈ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΡΡΠ΅Π½Π°ΡΠΈΠΈ, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΡΠ½Π΅ΡΠ΅Π½Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²; `MANIFEST.MF` Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π²Π΅ΡΡΠΈΠΈ ΠΈ ΠΎ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅.
### Π‘ΡΠ΅Π½Π°ΡΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ΅Π»ΠΈ (targets):
1. **compile** -- ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ
ΠΊΠΎΠ΄ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠ°.
2. **build** -- ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ
ΠΊΠΎΠ΄ΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ ΠΈΡ
ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ jar-Π°ΡΡ
ΠΈΠ². ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈΡΡ
ΠΎΠ΄Π½ΡΡ
ΠΊΠΎΠ΄ΠΎΠ² ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π° ΡΠ΅Π»ΠΈ **compile**.
3. **clean** -- ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΠΊΠ»Π°ΡΡΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π²ΡΠ΅Ρ
Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΠ°ΠΉΠ»ΠΎΠ² (Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π΅ΡΡΡ).
4. **test** -- Π·Π°ΠΏΡΡΠΊ junit-ΡΠ΅ΡΡΠΎΠ² ΠΏΡΠΎΠ΅ΠΊΡΠ°. ΠΠ΅ΡΠ΅Π΄ Π·Π°ΠΏΡΡΠΊΠΎΠΌ ΡΠ΅ΡΡΠΎΠ² Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ ΡΠ±ΠΎΡΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° (ΡΠ΅Π»Ρ **build**).
5. **native2ascii** - ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ [native2ascii](https://docs.oracle.com/javase/8/docs/technotes/tools/windows/native2ascii.html) Π΄Π»Ρ ΠΊΠΎΠΏΠΈΠΉ ΡΠ°ΠΉΠ»ΠΎΠ² Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅Π½Π°ΡΠΈΡ Π²ΡΠ΅ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠ½Π΅ΡΡΠΈ ΠΈΠ· ΠΊΠ»Π°ΡΡΠΎΠ² Π² ΡΠ°ΠΉΠ»Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ).
6. **diff** - ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅ΠΉ ΠΊΠΎΠΏΠΈΠΈ, ΠΈ, Π΅ΡΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠ°ΡΠ°ΡΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠΊΠ°Π·Π°Π½Π½ΡΡ
Π² ΡΠ°ΠΉΠ»Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ `commit` Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ `git`.
### ΠΠΎΠΏΡΠΎΡΡ ΠΊ Π·Π°ΡΠΈΡΠ΅ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ:
1. **Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΠ**. Π¦Π΅Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π²ΠΈΠ΄Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
2. ΠΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠ΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Ρ.
3. ΠΠ°ΠΊΠ΅Ρ **JUnit**, ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ API.
4. Π‘ΠΈΡΡΠ΅ΠΌΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ. ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈΠ½ΡΠΈΠΏΡ ΡΠ°Π±ΠΎΡΡ, ΠΏΡΠΈΠΌΠ΅ΡΡ ΡΠΈΡΡΠ΅ΠΌ.
5. Π£ΡΠΈΠ»ΠΈΡΠ° **make**. Make-ΡΠ°ΠΉΠ»Ρ, ΡΠ΅Π»ΠΈ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π°.
6. Π£ΡΠΈΠ»ΠΈΡΠ° **Ant**. Π‘ΡΠ΅Π½Π°ΡΠΈΠΈ ΡΠ±ΠΎΡΠΊΠΈ, ΡΠ΅Π»ΠΈ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
---
## ΠΠ°ΠΊ Π·Π°ΠΏΡΡΡΠΈΡΡ?
```bash
docker compose up # Setup PostgreSQL database
npm install # install webpack
npm run build # run webpack
./gradlew flywayMigrate # Database migrations
./gradlew flywayInfo # Check everything is OK
```
#### Gradle
```bash
./gradlew build # Build .war
```
ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ `build/libs/web-3-1.0-SNAPSHOT.war` Π² WildFly.
#### Apache Ant
```bash
ant build # Build .war
```
ΠΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Π·Π°Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ `ant/build/web-3-1.0-SNAPSHOT.war` Π² WildFly.
## ΠΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΡΠ»ΠΊΠΈ
| Π‘ΡΡΠ»ΠΊΠ° | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
| --- | --- |
| https://habr.com/ru/articles/323204/ | ΠΠ°ΠΉΠ΄ ΠΏΠΎ Apache Ant |
| https://habr.com/ru/articles/120101/ | ΠΠ°ΠΉΠ΄ ΠΏΠΎ JUnit 4 |
| https://github.com/VeraKasianenko/Fundamentals_of_SE/tree/main/lab3 | ΠΡΠΈΠΌΠ΅Ρ ΠΠ 3 |
ΠΡΠΎΠ΅ΠΊΡ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Ρ ΠΎΡΠΊΡΡΡΡΠΌ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π° ΡΡΠ»ΠΎΠ²ΠΈΡΡ
[ΠΠΈΡΠ΅Π½Π·ΠΈΠΈ MIT](https://opensource.org/license/mit/).
*ΠΠ²ΡΠΎΡΡΠΊΠΈΠ΅ ΠΏΡΠ°Π²Π° 2024 Max Barsukov*
**ΠΠΎΡΡΠ°Π²ΡΡΠ΅ Π·Π²Π΅Π·Π΄Ρ :star:, Π΅ΡΠ»ΠΈ Π²Ρ Π½Π°ΡΠ»ΠΈ ΡΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ.**