2015-11-24 4 views
0

Я думаю, что я не понимаю, как работает архитектура плагина, и надеялся, что кто-то сможет мне помочь. Вот как я понимаю, что работает Maven:Понимание создания Maven на нескольких модулях

Когда mvn запускается внутри каталога, он считывает файл pom.xml и файлы через иерархию в супер POM. Затем Maven работает через жизненный цикл проекта, управляя плагинами, которые соответствуют каждой фазе/цели, против кода в проекте. Поэтому, если вы укажете плагин в родительском POM, этот плагин будет запущен против дочерних проектов, как если бы он был указан только в дочернем проекте.

Моя сборка имеет 3-х проектов:

proj-parent/     # Just specifies the modules to build 
    pom.xml 
proj-java/     # Normal Java jar project 
    pom.xml 
    <normal java structure> 
proj-php/      # PHP Yii project 
    pom.xml 
    src/ 
     web/ 
      jars/ 
      js/ 
      js-src/ 
      index.php 

Я хотел бы создать содержащий распределению среди подмножества proj-php/ файлов вместе с банкой из proj-java со всеми его зависимостями.

Этот вопрос касается не только деталей моих POM, но и больше о стратегии перемещения файлов вокруг с помощью доступных плагинов. Я просмотрел сборки, но они, похоже, беспокоятся о перемещении файлов внутри данного проекта, а не копировании из одной целевой папки проектов в другую.

Я должен иметь файл свойств, содержащий переменную, указывающую окончательный путь сборки, чтобы проекты знали, где копировать биты из каждого проекта, чтобы сделать дистрибутив. Правильно ли я это делаю?

Я думал о консолидации всех трех проектов в 1, перемещая proj-php/src/web в proj-java/src/main и используя сборки. Однако это делает вещи неудобными для моей среды разработки, поскольку я использую Eclipse JDT/PDT (для проектов Java и PHP соответственно). Я запускаю их обоих одновременно, и они конфликтуют друг с другом из-за их общего корня проекта.

Update: Кто-нибудь есть какие-либо советы о том, как организовать свои проекты, так что я могу создать в тиражируемом, который включает эти вещи, которые я хочу без каких-либо внешних скриптов.

Я предполагаю, что я жду ответа, как: «Вы могли бы избавиться от proj-parent и тянуть proj-java/ в качестве зависимости proj-php, а затем использовать узел, чтобы переместить все вокруг в этом проекте.»

Как люди организуют проект Maven, когда у них есть много файлов без jar, которые необходимо консолидировать из нескольких проектов?

+0

Задайте свой вопрос? –

+0

Я уточнил свой вопрос –

+0

Нет создания proj-php juste use directcory-structure + Maven Assembly + fileSet –

ответ

2

Это структура моей работы, и она работает для нас.

proj-parent/     
|---pom.xml 
|---pom.properties <-- if needed 
|---proj-java/    
| |--pom.xml 
| \--<normal java structure> 
\---proj-php/     
    |--pom.xml 
    |--src/ 
    \--web/ 

То есть для структуры. Что касается зависимостей и проектов, которые разделяют зависимости, я буду ссылаться на сайт this, который даст вам быстрый способ узнать.

Если у вас есть время, прочитайте другие chapters с той же страницы. Они мне очень помогли.