|
| 1 | + |
| 2 | +# Заготовка репозитория для лабораторных по курсу "ООП на Java" ФИТ НГУ |
| 3 | + |
| 4 | +## Краткая справка, как работать с Git и GitHub |
| 5 | + |
| 6 | +Некоторые шаги ниже вы, возможно, уже делали раньше. |
| 7 | + |
| 8 | +1. Заводим аккаунт на GitHub. |
| 9 | +2. Устанавливаем Git на вашем компьютере (для Windows качаем [отсюда](https://git-scm.com/download/win)). |
| 10 | +3. Если у вас Windows, открываем папку, где хотим хранить задачи и выбираем в контекстном меню `Open Git Bash here`. |
| 11 | +4. Создаем SSH-ключ и привязываем его к аккаунту на GitHub, следуя инструкциям [отсюда](https://github.com/settings/keys). |
| 12 | +5. Нажимаем `Use this template -> Create a new repository` на этой странице, открывается окно создания нового репозитория на основе данного. Вводим имя, **выбираем Private**, жмем `Create repository`. |
| 13 | +6. На странице вашего репозитория идём в `Settings -> Collaborators -> Add people`, вводим мой аккаунт (`dsavenko`), нажимаем `Add ...`. |
| 14 | +6. В окне Git Bash выполняем команду `git clone <git-ссылка>`. Git-ссылку можно получить на странице вашего репозитория (нажав кнопку `Code`), она имеет вид `[email protected]:dsavenko/nsu-oop-java-template.git`. |
| 15 | +7. В папке с названием вашего репозитория теперь лежит его локальная копия, с которой вы можете работать. |
| 16 | + |
| 17 | +Как работать с локальной копией: |
| 18 | +1. Создаёте, удаляете, меняете файлы и папки, как вам нужно. |
| 19 | +2. Чтобы залить изменения на GitHub, открываете `Git Bash` в папке вашего репозитория и выполняете следующие команды: |
| 20 | + ``` |
| 21 | + $ git add . |
| 22 | + $ git commit -m "Краткое описание изменений" |
| 23 | + $ git push |
| 24 | + ``` |
| 25 | +3. Проверяем, что всё залито успешно, командой `git status`: |
| 26 | + ``` |
| 27 | + $ git status |
| 28 | + On branch master |
| 29 | + Your branch is up to date with 'origin/master'. |
| 30 | +
|
| 31 | + nothing to commit, working tree clean |
| 32 | + ``` |
| 33 | + Если вывела такое, то всё ОК. |
| 34 | +4. Коммитить и пушить рекомендуется **часто**, как минимум один раз за каждый день, когда вы работали. |
| 35 | +
|
| 36 | +**Рекомендуется самостоятельно изучить работу с Git более подробно.** Набираете в поисковике "основы Git и GitHub (под Windows)" и выбираете любую понравившуюся статью или ролик на YouTube. Для более основательного изучения рекомендую [Git Book](https://git-scm.com/book/ru/v2). Git является стандартом индустрии, и эти знания вам точно пригодятся. |
| 37 | +
|
| 38 | +## Что нужно установить |
| 39 | +
|
| 40 | +Установите (убедитесь, что установлено): |
| 41 | +
|
| 42 | +1. [Java](https://docs.oracle.com/en/java/javase/20/install/installation-jdk-microsoft-windows-platforms.html) версии не ниже 11. Нам нужно именно JDK (есть еще JRE, его будет недостаточно). Проверьте, что команда `java -version` запускается с командной строки (cmd). |
| 43 | +2. [Intellij IDEA community edition](https://www.jetbrains.com/ru-ru/idea/download/#section=windows) (бесплатная). Если у вас есть лицензия - еще лучше, но бесплатной версии достаточно. |
| 44 | +3. [Мавен](https://maven.apache.org/). Проверьте, что команда `mvn -version` запускается с командной строки (cmd). |
| 45 | +
|
| 46 | +По желанию можете поставить вместо Идеи Eclipse ([Eclipse IDE for Java Developers](https://www.eclipse.org/downloads/packages/)). |
| 47 | +
|
| 48 | +Мавен - это система сборки (как CMake), являющаяся стандартом индустрии в мире Java. Все ваши проекты должны будут собираться мавеном. |
| 49 | +
|
| 50 | +## Как создать новый проект в Intellij IDEA |
| 51 | +
|
| 52 | +1. После запуска IDEA нажимаем `New project` |
| 53 | +2. Заполняем поля как показано на скриншоте: |
| 54 | +
|
| 55 | + |
| 56 | +
|
| 57 | +* `Name` - название проекта, можно `lab1`, например. |
| 58 | +* `Location` - выбираем папку, куда вы клонировали репозиторий. |
| 59 | +* `Create Git repository` - должно быть **выключено** (у вас уже есть репозиторий). |
| 60 | +* `Build system` - убедитесь, что здесь стоит **Maven**. |
| 61 | +* Раскройте `Advanced Settings`, и введите: |
| 62 | + * `GroupId` - верхнеуровневое имя вашего пакета. Существует общепринятое [соглашение об именовании пакетов](https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html). Если не знаете, что писать, можете ввести `ru.nsu.<ваша фамилия маленькими буквами>`. |
| 63 | + * `ArtifactId` - то же, что и Name. |
| 64 | +
|
| 65 | +3. Нажимаете `Create`, должны получить структуру папок и файлов, аналогичную тому, что лежит в папке [testlab](testlab). |
| 66 | +
|
| 67 | + |
| 68 | +
|
| 69 | +4. Дожидаемся сборки проекта (пока справа внизу не исчезнет прогресс бар). |
| 70 | +
|
| 71 | +5. Открываем класс `Main`, нажимаем зеленую стрелочку для запуска. Убеждаемся, что программа выводит `Hello and welcome!...`. |
| 72 | +
|
| 73 | +> [!NOTE] |
| 74 | +> В разные моменты времени IDEA может предлагать добавлять файлы в Git (на скриншоте выше - окошко справа внизу). Рекомендую всегда отказываться и работать с Git вручную, с командной строки. Это наиболее надежный способ, который позволит избежать многих ошибок и лучше освоить Git. |
| 75 | +
|
| 76 | +6. Добавляем вновь созданный проект в Git, делаем первый коммит и пуш. Для этого в командной строке из папки проекта: |
| 77 | +``` |
| 78 | +$ git add . |
| 79 | +$ git commit -m "Первый коммит" |
| 80 | +$ git push |
| 81 | +``` |
| 82 | +
|
| 83 | +## Сборка и запуск с командной строки |
| 84 | +
|
| 85 | +Важно, чтобы ваш проект собирался и запускался с командной строки. Для этого делаем следующее: |
| 86 | +
|
| 87 | +1. Открываем командную строку (`cmd` в Windows) в папке проекта (например, [testlab](testlab)). |
| 88 | +
|
| 89 | +2. Набираем `mvn clean package` для полной (пере)сборки, дожидаемся завершения. В конце должно быть что-то подобное: |
| 90 | + ``` |
| 91 | + [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ testlab --- |
| 92 | + [INFO] Building jar: /.../testlab/target/testlab-1.0-SNAPSHOT.jar |
| 93 | + [INFO] ------------------------------------------------------------------------ |
| 94 | + [INFO] BUILD SUCCESS |
| 95 | + [INFO] ------------------------------------------------------------------------ |
| 96 | + [INFO] Total time: 1.425 s |
| 97 | + [INFO] Finished at: 2024-01-31T10:20:39+07:00 |
| 98 | + [INFO] ------------------------------------------------------------------------ |
| 99 | + ``` |
| 100 | + Это значит, что сборка прошла успешно, и ваша программа собрана в файл `target/testlab-1.0-SNAPSHOT.jar`. Программы на Java не собираются в нативные исполняемые файлы (exe). Вместо этого есть специальные форматы файлов, самый распространенный - это `jar` (сокращение от java archive). |
| 101 | +
|
| 102 | +3. Запускаем с командной строки следующим образом: |
| 103 | + ``` |
| 104 | + $ java -cp target/testlab-1.0-SNAPSHOT.jar ru.nsu.dsavenko.Main |
| 105 | + Hello and welcome!i = 1 |
| 106 | + i = 2 |
| 107 | + i = 3 |
| 108 | + i = 4 |
| 109 | + i = 5 |
| 110 | + ``` |
| 111 | + Здесь аргумент `-cp` - так называемый Classpath, вы должны указать jar-файл с вашей программой. После него идет полное имя запускаемого класса, то есть `<имя пакета>.<имя класса>`. |
0 commit comments