Maven интеграция

В настоящее время 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 плагины:

Чтобы сделать все это более легким предлагается 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 устройстве или эмуляторе.