2015-10-05 1 views
2

У меня есть Maven нескольких модулей проекта, как это:Как исключить один модуль из поколения Javadoc в проекте Maven с несколькими модулями?

foo-parent 
    foo-module 
    foo-module-new 
    foo-other-module1 
    foo-other-module2 
    pom.xml 

И при вызове mvn javadoc:aggregate в Foo-родитель, я хочу, чтобы исключить модуль Foo-модуль из поколения Javadoc.

Исключение по имени пакета с параметром excludePackageNames не работает в моем случае, потому что foo-module и foo-module-new имеют одинаковое имя пакета.

+0

После прочтения [этого диска ssion] (http://comments.gmane.org/gmane.comp.jakarta.turbine.maven.user/134446), кажется, единственный способ сделать это - использовать профиль, например, текущий ответ. – Tunaki

ответ

3

Launch следующее для генерации Javadocs только для foo-other-module1 и foo-other-module2 модулей (примечание: всегда включают в себя модуль агрегатор, в этом случае foo-parent):

mvn javadoc:aggregate -pl :foo-parent,:foo-other-module1,:foo-other-module2 

Поскольку Maven 3.2.1, вы также могут исключать модули из вашего реактора, поэтому приведенное выше упрощается до

mvn javadoc:aggregate -pl !foo-module 
+0

Я думаю, что вы правы: в настоящее время лучшим вариантом является выбор проектов на модулях в командной строке. Хотя я бы предпочел сохранить эту логику в pom.xml. –

+1

Также обратите внимание, что [исключение возможно с Maven 3.2.1] (http://stackoverflow.com/questions/13266470/how-do-i-exclude-certain-modules-from-a-maven-build-using-the -commandline/22783633 # 22783633) И, похоже, он работает без двоеточия перед именем модуля. –

+0

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

0
Use maven profil : 

1. add in your pom : 

<profiles> 
    <profile> 
    <id>javadoc</id> 
    <modules> 
     <module>module_include_javadoc1</module> 
     <module>module_include_javadoc2</module> 
    </modules>   
    </profile> 
    </profiles> 

2. 
mvn javadoc:aggregate -Pjavadoc 
+0

В этой простой форме ответ не будет работать, если все модули указаны в верхней части родительского пом. Что необходимо для нормальной, не-Javadoc сборки. Вообще я думаю, что решение с профилями будет слишком грязным. Нет простого способа исключить модуль из профиля. –

+0

Вот более подробный ответ на вопрос [как исключить модуль из сборки реактора Maven] (http://stackoverflow.com/questions/5539348/how-to-exclude-a-module-from-a-maven-reactor- строить/11429945 # 11429945). –