Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Как скомпилировать сервер ?!
#1
http://github.com/ATracer/tera-api/

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

Как скомпилить данный сервер напишите небольшой мануал если не трудно=)
Ответ
#2
Требования : Java, Maven и Напильник.
1) Качаем GIT-клиент (найти можно в Гугле).
2) Создаём директорию, допустим tera
3) Правый клик мышью на директорию -> Git Bash
4) В консоли пишем :
Код:
[B]git clone git://github.com/ATracer/tera-api.git[/B]
и жмём Enter, дожидаемся конца операции.
5) Переходим в директорию \tera\tera-api\com.tera (там находится проект-аггрегатор) и выполняем mvn clean install (или что более по душе).

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

1) Переходим в директорию \tera\tera-api\com.tera и выполняем
Код:
[B]copy pom.xml "%USERPROFILE%\.m2\repository\com\tera\com.tera\1.0.0\com.tera-1.0.0.pom"[/B]
(можно было бы и 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>[B]org.eclipse.[/B]osgi</artifactId>
  <version>${equinox.version}</version>
</dependency>

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

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

Код:
<guice.version>[B]2.0[/B]</guice.version>

правим id группы и артефакта :

Код:
<dependency>
  <groupId>com.google.inject[B].extensions[/B]</groupId>
  <artifactId>guice-assisted[B]-[/B]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[B]-bundle[/B],sqlite-jdbc[B]-bundle[/B],commons-dbcp</Embed-Dependency>

Код:
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java[B]-bundle[/B]</artifactId>
  <version>5.1.13</version>
</dependency>
<dependency>
  <groupId>org.xerial</groupId>
  <artifactId>sqlite-jdbc[B]-bundle[/B]</artifactId>
  <version>3.7.2</version>
</dependency>

Также у всех подпроектов com.tera.common.* имеется зависимость в netty-3.2.1.Final (уже второй косяк по dependency managment Smile). Как худшее, но быстрейшее решение - добавить ко всем 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 -P[B]id_профиля[/B]

Собственно id : gapi, gsaion, lapi, lsaion и paion.

З.Ы. Если ничего не понятно - лучше осваивать или отложить до лучших времён. Сейчас версия проекта 0.0.6-SNAPSHOT, что значит она ещё нестабильная и многое поменяется, возможно ...
Ответ
#3
спасибо за инструкцию...но не мог бы ты выложить уже отредактированный pom файл ? а то делал по этой инструкции и обнаружил, что некоторого у меня вообще нет в нём о чём тут идёт речь..
Ответ
#4
Эээ какой именно Git-Клиент использовать...?
Ответ
#5
KOMPoT, любой. Например этот или этот
Просьба к пользователям, соблюдайте правила. Экономьте свои/наши время и нервы
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)