В настоящее время libGDX находиться в SonaType snapshot репозитории. Это до тех пор, пока Maven интеграция не будет завершена. На данный момент репозиторий содержит только последний snapshot релиз. В конце концов также будет опубликован build релиз в Sonatype.
Добавьте следующие строки в settings.xml или pom.xml вашего проекта:
<repositories> <repository> <id>gdx-nightlies</id> <url>https://oss.sonatype.org/content/repositories/snapshots/</url> </repository> </repositories>
Если вы используете archetype, то вам не нужно добавлять репозиторий в настройки Maven.
Настройка libGDX с Maven не так тривиальна, так как она:
- содержит нативные библиотеки.
- развертывает на GWT.
- развертывает на Android.
Чтобы обработать все это libGDX полагается на следующие Maven плагины:
- GWT Maven плагин, версия 2.5.0, чтобы скомпилировать и упаковать GWT проект.
- Maven native dependencies плагин, чтобы копирует нативные библиотеки в соответствующие директории.
- Maven Android плагин,чтобы скомпилировать и упаковать.
Чтобы сделать все это более легким предлагается Maven archetype, который генерирует много-модульный Maven проект.
Maven Archetype
В настоящее время Maven archetype нет ни в одном репозитории. Вы можете скачать его libgdx-maven-archetype и скомпилировать, затем установить в свой локальный Maven репозиторий при помощи shell:
git clone git://github.com/libgdx/libgdx-maven-archetype.git cd libgdx-maven-archetype mvn installЧтобы вызвать archetype нужно сделать следующие:
mvn archetype:generate -DarchetypeGroupId=com.badlogic.gdx -DarchetypeArtifactId=gdx-archetype -DarchetypeVersion=0.9.9-SNAPSHOT -DgroupId=com.badlogic.test -DartifactId=test -Dversion=1.0-SNAPSHOT -Dpackage=com.badlogic.test -DJavaGameClassName=Test
Три первый параметра указывают archetype, который имеет группу id com.badlogic.gdx, artifact id gdx-archetype и версию (сейчас 0.9.9-SNAPSHOT).
Следующие параметры указывают атрибуты вашего проекта:
- groupId: your project's group id
- artifactId: artifact id вашего проекта
- version: версия вашего проекта
- package: главный пакет вашего проекта
- JavaGameClassName: имя ApplicationListener класса, и префикс для starter классов платформ, на пример MyClassDesktop, MyClassAndroid и т.д.
Для параметров описанных выше вы в конечном итоге будете иметь дело со следующей структурой проекта (мы будем использовать этот пример в последующих разделах).
test/ <-- the base directory core/ <-- contains the apps core desktop/ <-- desktop starter & assets android/ <-- android starter html/ <-- HTML starter ios/ <- stub, not working at the moment
Главный проект содержит код вашего приложения. Desktop проект содержит assets директорию, которая является общей и разделяется между остальными проектами, а так же содержит destop starter класс. Android проект содержит start-up код для Android и зависит от главного проекта. Тоже самое можно сказать о HTML проекте. iOS проект сейчас не работает.
Сборка и развертывание
Использовать Maven для сборки и развертывания вашего приложения для разных backend очень легко.
Desktop
Выполните следующюю команду, чтобы запустить jar файл на desktop:
mvn -Pdesktop package
Команда создаст файл с названием test-desktop-1.0-SNAPSHOT-jar-with-dependencies.jar в test/desktop/target директории. Он содержит все необходимые зависимости, assets и manifest файл указывающий main класс. Вы можете выполнить этот файл:
java -jar test-desktop-1.0-SNAPSHOT-jar-with-dependencies.jar
Android
Чтобы создать не подписанный APK для Android выполните следующюю команду:
mvn -Pandroid package
Команда создаст файл с названием test-android-1.0-SNAPSHOT.apk в test/android/target директории. Чтобы установить apk на устройство или эмулятор выполните:
mvn -Pandroid install
Для более полной информации о Android смотрите Maven Android plugin
HTML5/GWT
Чтобы скомпилировать HTML5 проект в JavaScript выполните:
mvn -Phtml package
Конечный результат находится в target/ директории. Вы можете использовать .war файл, который был сгенерирован и развернуть его на Jetty/Tomcat или скопировать содержимое HTML/target/test-html-1.0-SNAPSHOT/ директории и разместить на вашем веб сервере. Директория war содержит веcm скомпилированный JavaScript код, index.html файл и assets.
Сейчас нет возможности запустить HTML5 проект с помощью Maven. Это связано с проблемой путей и работы GWT и Jetty плагинов.
IDE Интеграция
Eclipse, Intellij Idea и NetBeans все в различной форме поддерживают Maven проекты. Archetype делает ваш libGDX проект удобным для использования в Eclipse и Intellij Idea. NetBeans не поддерживается. Плагины для Eclipse разные в том, как интерпретировать Maven конфигурацию для GWT и Android проектов в Intellij. Следующий раздел описывает как импортировать проект в обоих IDE после создания его используя archetype.
Eclipse
Перед тем как импортировать ваш проект, вам нужно установить следующие Eclipse плагины:
- m2e, должен уже быть доступен при чистой установки Eclipse installation (Java и Java EE). Предоставляет основную Maven поддержку для Eclipse.
- m2e-android предоставляет Maven интеграцию для Android проектов в Eclipse. Сейчас ожидается m2e-android команды принятие запроса. Пока вы должны скопировать их репозиторий, скомпилировать плагин и установить его вручную в Eclipse.
- Google Web Toolkit, плагин для Eclipse, который позволяет вам разрабатывать GWT проекты.
Как только плагины будут установлены, вы можете импортировать ваш Maven libGDX проект, перейдя File -> Import... -> Maven -> Existing Maven Projects. Это импортирует родительский pom, как проект вместе с главным, Desktop, Android и HTML5 проектами.
Вы можете запускать и делать отладку проектов как вы делали если настраивали проекты через gdx-setup-ui.
IntelliJ Idea
Перед тем как начать, убедить, что IntelliJ Idea знает, где находиться установленный Maven.
Перейдите File -> Settings и в диалоговом окне выберите Maven. Укажите директорию, в которой находиться установленный Maven.
После того как вы создали проект с помощью archetype, вы можете импортировать его в IntelliJ Idea. Перейдите File -> Open Project и затем перейдите к корневой директории проекта.
После того как загрузиться проект вы должны включить profiles. Откройте Maven Project просмотр и отметьте profiles Desktop, Android и HTML.
Чтобы запустить Desktop проект создайте новую конфигурацию через Run -> Edit Configurations. Создайте новую конфигурацию нажатием "+" кнопки вверху слева и выберите Application. Задайте Main class для Desktop starter класса и выберите desktop module.
Запустите эту конфигурацию для запуска приложения на Desktop.
Чтобы запустить Android проект создайте новую конфигурацию, в этот раз выберите Android Application во время создания проекта. Выберите Android module и затем отметьте Run Maven Goal и нажмите на "..." кнопку справа. В диалоговом окне выберите Android проект, затем Lifecycle и из списка goals выберите package. Вы можете так же установить Target Device в Show chooser dialog, так что вы будете получать диалог при развертывании проекта, на устройство или эмулятор.
Запустите эту конфигурацию для запуска приложения на Android устройстве или эмуляторе.