Помогите Пожалуйста С Maven И Вообще Со Структурой Проекта.

DarkMentat

New member
28.07.2014
3
0
#1
Здравствуйте!

У меня тут вопрос возник, только вникаю в мавен, но так почитал и захотел с парой товарищей запилить один проектик используя эту вещицу. Скорее всего толком не вник, так что возможно неких вещей понимать не буду. В общем игрушка на андроид.

И приблизительно я представляю структуру так:

* Java либа с ядром, вся логика-механика. Там сорцы и юнит-тесты.
* Android приложение, которое использует эту либу, тоже сорцы и юнит-тесты.
* Java консольное приложение (или потом может и не консольное) которое тоже использует эту либу. Использоваться будет для проверок, можно сказать тестирования, но не кода, а баланса, разных сюжетных моментов итд.

И вот я толком не знаю как подойти к этому делу, и вот тройка вопросов:

1) Возможно ли это? Что либа на jdk7, проверочное консольное приложение тоже, а Android приложение соответственно на android-sdk. И Android или проверочное приложение автоматом подключают последнее ядро.

2) Толково ли это? Как вообще принято в подобных ситуациях работать и не полный ли бред я написал чуть выше?

3) Как это сделать? =) Можете рассказать хотя бы поверхностно (что включать, создавать) ?
 

Kmet

Java Team
25.05.2006
1 036
8
#2
1) возможно, разные проекты, даже в если они входят в один multi-module project могут иметь абсолютно разные настройки, собираться под разные jdk и тд
2) с большего, это общепринятая практика. вам остается решить использовать ли multi-module project, или делать полностью отдельными проектами. Первый вариант проще, второй лучше маштабируется.
3) если проект не совсем тривиальный, то поверхностно не получится, придется хотя бы одну человеку в команде более менее разобраться. можно начать от сюда http://maven.apache.org/guides/getting-started/index.html

4) а еще можно использовать gradle
 

DarkMentat

New member
28.07.2014
3
0
#4
1) возможно, разные проекты, даже в если они входят в один multi-module project могут иметь абсолютно разные настройки, собираться под разные jdk и тд
2) с большего, это общепринятая практика. вам остается решить использовать ли multi-module project, или делать полностью отдельными проектами. Первый вариант проще, второй лучше маштабируется.
3) если проект не совсем тривиальный, то поверхностно не получится, придется хотя бы одну человеку в команде более менее разобраться. можно начать от сюда http://maven.apache.org/guides/getting-started/index.html

4) а еще можно использовать gradle
Спасибо, что откликнулись!
Я вообще не часто по форумам спрашиваю, но тут немало застопорился и хочется сделать не как-попало, а по-человечески)

Как я понял, стоит сделать приблизительно так:

Три проекта, в отдельных каталогах, в каждого свой pom.xml, где прописаны sdk, типы и все остальное. У двух из них в зависимостях либа, которая собирается в третьем проекте по ходу допиливания (указано просто относительный путь).
Эти три каталога лежат в одном репозитории, никаких IDE'шных файлов там нет, только код и pom'ы. Ну и думаю Travis-CI (хотя в это еще не вникал) при пуше в либу ее пересобирает и пересобирает другие проектики.

Про gradle слыхал, его хвалили как попрогрессивнее, но я какой-то мануал нашел про Travis-CI + Android + maven, да и в maven думаю стоит вникнуть, даже перед gradl'ом, что бы было, с чем сравнивать. Ну и все это я затеял, в принципе, что бы чуток пощупать CI и разные практики, которые используют большие дяди в своих серьезных делах))
 

Kmet

Java Team
25.05.2006
1 036
8
#5
-master-
случается... нормальный вопрос, да еще и по яве=)

DarkMentat
приблизительно так, но можно еще эти проекты объеденить в multi-module project, в который вынести общие настройки, зависимости, плагины и тд.
оба подхода приемлимы и, в целом, равнозначны. но для небольших проектов и команд multi-module project будет проще и удобнее.

обычно используется следующая логика, если проекты имеют единый цикл разработки, релизятся вместе, то их объединяют в multi-module project

если просто пощупать, то без разницы maven или gradle. это инструменты одной идеологии.
разберетсь с одним, сможете использовать и второй, и buildr, и sbt и тд. С sbt я погорячился, с ним еще понадобится стать адептом черной магии=)

с мануалами моветую быть осторожным, кто их сейчас только не пишет.....