An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          

# Лабораторная Ρ€Π°Π±ΠΎΡ‚Π° 3

## Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ `1576`

anime

> 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:, Ссли Π²Ρ‹ нашли этот ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ.**