Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   TERA (https://forum.zone-game.info/forumdisplay.php?f=182)
-   -   Как скомпилировать сервер ?! (https://forum.zone-game.info/showthread.php?t=10753)

KOMPoT 26.10.2010 14:48

Как скомпилировать сервер ?!
 
http://github.com/ATracer/tera-api/

тут исходники сервера...

Как скомпилить данный сервер напишите небольшой мануал если не трудно=)

CHIPSET 27.10.2010 19:35

Re: Как скомпилировать сервер ?!
 
Требования : Java, Maven и Напильник.
1) Качаем GIT-клиент (найти можно в Гугле).
2) Создаём директорию, допустим tera
3) Правый клик мышью на директорию -> Git Bash
4) В консоли пишем :
Код:

git clone git://github.com/ATracer/tera-api.git
и жмём Enter, дожидаемся конца операции.
5) Переходим в директорию \tera\tera-api\com.tera (там находится проект-аггрегатор) и выполняем mvn clean install (или что более по душе).

Это собственно подготовка. Успешной компиляции по идее не будет, поэтому далее опишу несколько костылей и общую работу напильником :

1) Переходим в директорию \tera\tera-api\com.tera и выполняем
Код:

copy pom.xml "%USERPROFILE%\.m2\repository\com\tera\com.tera\1.0.0\com.tera-1.0.0.pom"
(можно было бы и mvn install:install-file ..., но это чтоб наверняка). Это для винды и пути если что проверить. Если что не так - можно и вручную скопировать и переименовать. [ Это устранит ошибку с "потерянным" parent pom ]
2) Зависимости. Я насчитал несколько штук, которые не были найдены в десятках репозиториях (конечно же из-за специфичных версий и различий в именах групп и артефактов). Все изменения будут вестись в pom.xml, о котором писал выше (кстати после изменений необходимо повторять первый шаг с копированием, т.к. подпроекты берут зависимости из parent pom в локальном репозитории).

а) org.eclipse: osgi:jar:3.6.0.v20100517 [ неверный id артефакта ]

добавляем :

Код:

<dependency>
  <groupId>org.eclipse.osgi</groupId>
  <artifactId>org.eclipse.osgi</artifactId>
  <version>${equinox.version}</version>
</dependency>

б) com.google.inject:guice:jar:snapshot-r1189, com.google.inject:guice-assistedinject:jar:snapshot-r1189

меняем версию с snapshot-r1189 на 2.0 :

Код:

<guice.version>2.0</guice.version>
правим id группы и артефакта :

Код:

<dependency>
  <groupId>com.google.inject.extensions</groupId>
  <artifactId>guice-assisted-inject</artifactId>
  <version>${guice.version}</version>
  <type>jar</type>
</dependency>

в) trove:trove:jar:2.1.0

берём альтернативу чуть старее (заменить зависимость) :

Код:

<dependency>
  <groupId>net.sf.trove4j</groupId>
  <artifactId>trove4j</artifactId>
  <version>2.0.2</version>
</dependency>

Далее переходим в com.tera.common.database :

здесь как вариант можно использовать обычные артефакты вместо bundle (выделенное - выпилить) -

Код:

<Embed-Dependency>mysql-connector-java-bundle,sqlite-jdbc-bundle,commons-dbcp</Embed-Dependency>
Код:

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java-bundle</artifactId>
  <version>5.1.13</version>
</dependency>
<dependency>
  <groupId>org.xerial</groupId>
  <artifactId>sqlite-jdbc-bundle</artifactId>
  <version>3.7.2</version>
</dependency>

Также у всех подпроектов com.tera.common.* имеется зависимость в netty-3.2.1.Final (уже второй косяк по dependency managment :)). Как худшее, но быстрейшее решение - добавить ко всем pom.xml репозиторий с этим артефактом :

Код:

  <repositories>
    <repository>
      <id>atlassian-groups-public-m2-repo</id>
      <name>Atlassian Groups Public Maven 2 Repository</name>
      <url>https://maven.atlassian.com/content/groups/public</url>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <releases>
        <enabled>true</enabled>
      </releases>
    </repository>
  </repositories>

Кстати некоторые тесты проваливаются, посему можно в процессе их выключить (что не есть хорошо) - -Dmaven.test.skip=true

Ну и наконец следует отметить что вышел скорее не мануал, а хинт "куда копать". На примере com.tera.common.* я показал чего в основном можно ожидать компилируя дефолтный профиль и остальные, которые тоже придётся компилировать. Пример :

Код:

mvn clean install -Pid_профиля
Собственно id : gapi, gsaion, lapi, lsaion и paion.

З.Ы. Если ничего не понятно - лучше осваивать или отложить до лучших времён. Сейчас версия проекта 0.0.6-SNAPSHOT, что значит она ещё нестабильная и многое поменяется, возможно ...

CABA 28.10.2010 00:04

Re: Как скомпилировать сервер ?!
 
спасибо за инструкцию...но не мог бы ты выложить уже отредактированный pom файл ? а то делал по этой инструкции и обнаружил, что некоторого у меня вообще нет в нём о чём тут идёт речь..

KOMPoT 28.10.2010 05:46

Re: Как скомпилировать сервер ?!
 
Эээ какой именно Git-Клиент использовать...?

Perfecto 28.10.2010 09:22

Re: Как скомпилировать сервер ?!
 
KOMPoT, любой. Например этот или этот


Текущее время: 19:45. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot