Как вы строите структуру каталогов автономной Java-программы с нуля? - PullRequest
0 голосов
/ 27 мая 2019

Я программирую свою первую 2D-игру на Java. Я пишу код в Atom. Я компилирую и запускаю код из терминала на моем Mac. Пока игра отлично работает! Но я боюсь, что неправильно структурирую свой проект и не смогу развернуть его, когда придет время. Я хочу знать, как правильно создать структуру каталогов для проекта, подобного 2D-игре на основе Java, в идеале, делать это с нуля.

Я приостановил процесс создания игры, чтобы выяснить структуру. Я попытался использовать LibGDX как средство упаковки своего проекта, а затем импортировать его как проект Gradle в Eclipse. Внезапно я обнаружил огромную и непонятную структуру каталогов, окружавшую мой когда-то простой проект. Я чувствовал, что задача была не проще, чем структурировать проект с нуля. Кроме того, я не смог заставить работать простой Java-код из этой автоматически сгенерированной структуры каталогов, предоставляемой LibGDX, теперь внутри Eclipse. Я бы предпочел написать весь код в Atom, скомпилировать и протестировать код из терминала, создавая соответствующие JAR-файлы, когда это необходимо, снова из терминала.

Я решил упростить задачу и вернуться к документации Oracle, и я решил, что то, что я пытаюсь создать, является автономным Java-приложением. Милая! Но документы Oracle, похоже, не слишком углубляются в логику, лежащую в основе структуры каталогов, необходимой для такого проекта. Они сообщают вам о двух основных компонентах, которые вам нужны: ресурсы для вашего приложения (файлы .java, изображения, аудио и т. Д.) И копия JRE, чтобы у пользователя было все, что ему нужно для игры при запуске. программа. Я просто не уверен, как настроить эту структуру каталогов с помощью предоставленной информации.

Я хотел бы преодолеть это "как это все должно быть структурировано?" проблема, поэтому я могу вернуться к разработке игры. Заранее благодарим за чтение и предоставление обратной связи.

1 Ответ

0 голосов
/ 27 мая 2019

Промышленным стандартом для структурирования Java-проектов является использование таких инструментов, как Maven или Gradle.Оба эти инструмента автоматически обрабатывают все ваши исходные коды, файлы ресурсов и т. Д. И имеют системы, облегчающие экспорт файлов jar (из среды IDE или командной строки).По сути, они позволяют вам указать все, что вы хотите, для построения вашего Java-проекта (Gradle может также выполнять проекты на C ++), а затем они предоставляют абстрагированный интерфейс командной строки для построения проекта.

Важно отметить, что ваши предпочтения по работе с Java без IDE не разделяются многими разработчиками.Хотя это само по себе не является проблемой, оно становится тем, когда вы хотите работать с другими, которые будут использовать IDE.Gradle и Maven облегчают эту задачу, поскольку почти все IDE будут хорошо работать с проектами Gradle и Maven.По этой причине большинство Java-проектов FOSS используют одну из этих систем (обычно Gradle), чтобы позволить различным разработчикам использовать их предпочтительную IDE.

Вы также выразили желание полностью понять набор файлов, составляющих ваш проект.,Для этого Gradle, вероятно, является лучшим выбором, поскольку его уроки очень хорошо объясняют это.Он более сложный, чем простой Java-проект, но он того стоит для большинства разработчиков, поскольку вы получаете очень простые и выразительные инструменты (например, 3 строки конфигурации Gradle могут создать экспорт jar) вместе с возможностью использовать множество стеков разработки (например, IDE, командная строка и непрерывная интеграция) за счет незначительной кривой обучения.Gradle также является самым популярным не зависящим от IDE инструментом для сборки Java.Maven действует немного больше как черный ящик, но все же обладает многими преимуществами Gradle.Если вы хотите изучать Gradle, их руководства по началу работы - отличное место для начала.

...