В предыдущем
посте я описывал как создать Maven-проект
и залить его на Git.
Сегодня я
хочу поделиться своим небольшим опытом.
На днях, мне
попалась вакансия компании IDAP с тестовым
заданием для позиции iOS Trainee. Тест
предполагает собой выполнить одно из
трех заданий (на выбор) на любом языке
и любым способом. Также, предусмотрены
дополнительные баллы за выполнение
некоторых условий, подробнее.
Признаюсь
честно, задание с игрой показалось мне
довольно тривиальным, т. к. до этого
приходилось не раз делать небольшие
консольные приложения с многоуровневым
меню, но мое решение выполнить пункт «
возможность скармливать игре текстовые
файлы с той же структурой, но другим
наполнением» сначала постигло меня в
глубокий ступор :)
Но, поэкспериментировав (конечно же, я понимаю, что мое решение далеко не идеально), я решил зашить в файл и логику и контент.
Но, поэкспериментировав (конечно же, я понимаю, что мое решение далеко не идеально), я решил зашить в файл и логику и контент.
В реализации,
я считывал конфиг-файл в мапу (Map<Integer
key, String values>), парсил и корректировал
под свои нужды, в результате чего получил
мапу Map<Integer key, Entity entity>, где объект
Entity представлял собой объект с
полями-параметрами.
Конечно же,
идея хранить весь контент в одной мапе
не самое правильное, т. к. мы загружаем
ее себе в ОЗУ, но в оправдывая свой выбор
скажу что каждый раз считывать строку
(искать по ключу) я счел более тяжеловесным
в сравнении с моим небольшим текстовым
контентом.
Отдельно
хочу подчеркнуть то, что в строке перенос
строки '\n' — это два символа, а в коде —
это один символ, в результате чего
необходимо корректировать получаемые
значения. На это у меня ушло пару часов
— не повторяйте мои ошибки!)
Итак, допустим
игру написали, время собирать проект.
Для сборки
Maven'ом, в пом файл (pom.xml):
1) добавляем
зависимости сборки:
5) Сборка Maven-проекта в Intellij Idea осуществляется очень просто:
справа жмем кнопку Maven (на боковой панеле), выбираем (с помощью кнопки ctrl) 'clean' и 'install', и жмем на "пуск" (зеленый треугольник).
Если мы видим 'BUILD SUCCESS', значит, мы сделали все верно и в папке с проектом появилась директория target, где лежат наши скомпилированные классы и готовый jar.
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
<!--add classpath Main-->
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
2) в <project
…
…
<properties>
…
добавляем
настройку кодировки:
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
подробне тут.
3) указываем
MANIFEST (точка входа в программу, иными
словами — наш класс Main):
подробнее тут.
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>Main</mainClass>
</manifest>
</archive>
</configuration>
4) указываем
свои ресурсы, которые необходимо
скопировать с папки resources. Для этого
добавляем плагин:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.build.outputDirectory}/src/main/resources/</outputDirectory>
<resources>
<resource>
<directory>src/main/${project.build.sourceDirectory}/resources/${project.name}</directory>
<filtering>true</filtering>
<includes>
<include>**/*.cfg</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
5) Сборка Maven-проекта в Intellij Idea осуществляется очень просто:
справа жмем кнопку Maven (на боковой панеле), выбираем (с помощью кнопки ctrl) 'clean' и 'install', и жмем на "пуск" (зеленый треугольник).
Если мы видим 'BUILD SUCCESS', значит, мы сделали все верно и в папке с проектом появилась директория target, где лежат наши скомпилированные классы и готовый jar.
или
git clone
https://github.com/vaReliy/textgame.git
Буду рад,
если кому-то будет полезно. С удовольствием
прочту критику. Давайте «расти» вместе!
:)
Комментариев нет:
Отправить комментарий