{"id":21711306,"url":"https://github.com/maxbarsukov-itmo/mispi-3","last_synced_at":"2026-05-15T20:04:42.353Z","repository":{"id":237735345,"uuid":"795143587","full_name":"maxbarsukov-itmo/mispi-3","owner":"maxbarsukov-itmo","description":"👷 МиСПИ: Лабораторная работа №3","archived":false,"fork":false,"pushed_at":"2024-05-08T12:50:42.000Z","size":29555,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-28T07:36:43.225Z","etag":null,"topics":["apache-ant","itmo","java","junit4","laboratory-work","maxbarsukov","mispi","web"],"latest_commit_sha":null,"homepage":"https://se.ifmo.ru/courses/software-engineering-basics#lab3","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maxbarsukov-itmo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-02T17:06:29.000Z","updated_at":"2025-05-10T17:36:14.000Z","dependencies_parsed_at":"2024-05-08T13:45:21.635Z","dependency_job_id":null,"html_url":"https://github.com/maxbarsukov-itmo/mispi-3","commit_stats":null,"previous_names":["maxbarsukov-itmo/mispi-3"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/maxbarsukov-itmo/mispi-3","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxbarsukov-itmo%2Fmispi-3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxbarsukov-itmo%2Fmispi-3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxbarsukov-itmo%2Fmispi-3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxbarsukov-itmo%2Fmispi-3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maxbarsukov-itmo","download_url":"https://codeload.github.com/maxbarsukov-itmo/mispi-3/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxbarsukov-itmo%2Fmispi-3/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33078004,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T11:35:32.926Z","status":"ssl_error","status_checked_at":"2026-05-15T11:35:31.362Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apache-ant","itmo","java","junit4","laboratory-work","maxbarsukov","mispi","web"],"created_at":"2024-11-25T23:21:17.176Z","updated_at":"2026-05-15T20:04:42.318Z","avatar_url":"https://github.com/maxbarsukov-itmo.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Лабораторная работа 3\n\n## Вариант `1576`\n\n\u003cimg alt=\"anime\" src=\"./.resources/anime.gif\" height=\"200\"\u003e\n\n\u003e What do you call a really old ant? ~~An **ant**ique~~ Apache Ant\n\n|.pdf|.docx|\n|-|-|\n| [report](./docs/report.pdf) | [report](./docs/report.docx) |\n\n---\n\n## Задание\n\nНаписать сценарий для утилиты [Apache Ant](http://ant.apache.org/), реализующий компиляцию, тестирование и упаковку в jar-архив кода проекта из [лабораторной работы №3](https://se.ifmo.ru/courses/web#lab3) по дисциплине __\"Веб-программирование\"__.\n\nКаждый этап должен быть выделен в отдельный блок сценария; все переменные и константы, используемые в сценарии, должны быть вынесены в отдельный файл параметров; `MANIFEST.MF` должен содержать информацию о версии и о запускаемом классе.\n\n### Сценарий должен реализовывать следующие цели (targets):\n\n1. **compile** -- компиляция исходных кодов проекта.\n2. **build** -- компиляция исходных кодов проекта и их упаковка в исполняемый jar-архив. Компиляцию исходных кодов реализовать посредством вызова цели **compile**.\n3. **clean** -- удаление скомпилированных классов проекта и всех временных файлов (если они есть).\n4. **test** -- запуск junit-тестов проекта. Перед запуском тестов необходимо осуществить сборку проекта (цель **build**).\n5. **native2ascii** - преобразование [native2ascii](https://docs.oracle.com/javase/8/docs/technotes/tools/windows/native2ascii.html) для копий файлов локализации (для тестирования сценария все строковые параметры необходимо вынести из классов в файлы локализации).\n6. **diff** - осуществляет проверку состояния рабочей копии, и, если изменения касаются классов, указанных в файле параметров выполняет `commit` в репозиторий `git`.\n\n### Вопросы к защите лабораторной работы:\n\n1. **Тестирование ПО**. Цель тестирования, виды тестирования.\n2. Модульное тестирование, основные принципы и используемые подходы.\n3. Пакет **JUnit**, основные API.\n4. Системы автоматической сборки. Назначение, принципы работы, примеры систем.\n5. Утилита **make**. Make-файлы, цели и правила.\n6. Утилита **Ant**. Сценарии сборки, цели и команды.\n\n\n---\n\n## Как запустить?\n\n```bash\ndocker compose up # Setup PostgreSQL database\nnpm install # install webpack\nnpm run build # run webpack\n./gradlew flywayMigrate # Database migrations\n./gradlew flywayInfo # Check everything is OK\n```\n\n#### Gradle\n\n```bash\n./gradlew build # Build .war\n```\n\nПосле чего задеплоить `build/libs/web-3-1.0-SNAPSHOT.war` в WildFly.\n\n#### Apache Ant\n\n```bash\nant build # Build .war\n```\n\nПосле чего задеплоить `ant/build/web-3-1.0-SNAPSHOT.war` в WildFly.\n\n## Полезные ссылки\n\n| Ссылка | Описание |\n| --- | --- |\n| https://habr.com/ru/articles/323204/ | Гайд по Apache Ant |\n| https://habr.com/ru/articles/120101/ | Гайд по JUnit 4 |\n| https://github.com/VeraKasianenko/Fundamentals_of_SE/tree/main/lab3 | Пример ЛР3 |\n\n## Лицензия \u003ca name=\"license\"\u003e\u003c/a\u003e\n\nПроект доступен с открытым исходным кодом на условиях [Лицензии MIT](https://opensource.org/license/mit/).\n\n*Авторские права 2024 Max Barsukov*\n\n**Поставьте звезду :star:, если вы нашли этот проект полезным.**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxbarsukov-itmo%2Fmispi-3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaxbarsukov-itmo%2Fmispi-3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxbarsukov-itmo%2Fmispi-3/lists"}