2013-07-15 3 views
2

Я работаю над проектом maven. Я хочу создать банку для конкретных пакетов Это структура проекта, я хочу создать банку, содержащую только dca и общий как это достичь.Как создать банку для конкретных пакетов maven

myproject 
| 
--src 
    | 
    --main 
     | 
     --java 
      | 
      --common 
      --dca 
      --model 
     --resources 
    --test 
--pom.xml 

Могу ли я achive это с помощью Maven-Jar-плагин

+1

Почему у вас есть это требование? Похоже, вы пытаетесь решить проблему, которая находится в другом месте. –

ответ

2

Вы можете отделить свой проект в подмодулей, где у вас есть два подмодуля:

  • общий
  • дк

Эти подмодули были бы отдельные артефакты Maven в том же groupId, как вы сейчас. Любой модуль, содержащий подмодули, должен быть упакован как pom и, следовательно, не может содержать исходный код.

код, который зависит от любого пакета (например, какой-то пользовательский интерфейс, или веб-компонентов) будет находиться в другом подмодуль, скажем web или gui, и что подмодуль будет иметь зависимость Maven на common или dca артефакт.

Подводя итог, ваша структура будет выглядеть следующим образом:

  • корень -> упаковки pom
    • веб -> упаковка war
    • гуй -> упаковка jar
    • другой - > упаковка pom
      • dca -> упаковка jar
      • общие -> упаковка jar
+0

нет другого способа добиться этого? – jos

+0

Могут быть другие способы добиться этого, это именно то, как я его разрешу. Я думаю, что это был бы лучший способ достичь желаемого результата (при условии, что это требование так же, как вы его описали). – mthmulders

+0

Этот mYproject уже является подмодулем .. я могу создать еще один подмодуль? – jos

2

Maven-банку-модуль может быть настроен, чтобы включить/исключить конкретный файл. Вы можете достичь этого, настроив pom.xml, как показано ниже.

<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
. 
. 
<configuration> 
    <excludes> 
     <exclude>**/model/*</exclude> 
    </excludes> 
</configuration> 
. 
. 
</plugin> 
Смежные вопросы