Як я можу відключити плагін Maven Javadoc з командного рядка?


231

У pom.xml у мене є така декларація

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <executions>
            <execution>
                <id>attach-javadocs</id>
                <goals>
                    <goal>jar</goal>
                </goals>
            </execution>
        </executions>
    </plugin>

чи є спосіб вимкнути це з командного рядка?

Я знаю, що можу витягти це у профіль, але це не те, що я хочу.

Відповіді:


437

Генерацію Javadoc можна пропустити, встановивши властивість maven.javadoc.skiptrue [ 1 ], тобто

-Dmaven.javadoc.skip=true

(а не помилково)


1
Дивіться @ Крістоф-Тобіас Шенке відповідь щодо підходу до використання з дитячими модулями.
екое

Цей аргумент також можна встановити безпосередньо в джинкінах, щоб уникнути цієї проблеми (у глобальному MAVEN_OPTS, визначеному в програмі Налаштування)
King Midas

11
Це не спрацювало для мене, але я дізнався, що при використанні плагіна випуску Maven вам потрібно передати цей параметр інакше. Це спрацювало: mvn release:perform -Darguments="-Dmaven.javadoc.skip=true".
PatS

181

Здається, що простий спосіб

-Dmaven.javadoc.skip=true

не працює з випуском-плагіном. у цьому випадку ви повинні передати параметр як "аргумент"

mvn release:perform -Darguments="-Dmaven.javadoc.skip=true"

9
Якщо вам потрібно додати два аргументи, ви можете розділити їх таким пробілом-Darguments="-DskipTests -Dmaven.javadoc.skip=true"
Грем

4
Він також працює, щоб додати їх до конфігурації плагіна випуску в кореневому рівні pom.xml:<configuration><arguments>-DskipTests -Dmaven.javadoc.skip=true</arguments></configuration>
nclark

1
Окрім того, skipTests має більш сильний аромат, який також пропускає компіляцію тестів:-Dmaven.tests.skip=true
nclark

120

Ви можете скористатися maven.javadoc.skipвластивістю, щоб пропустити виконання плагіна, переходячи через javadoc Mojo. Ви можете вказати значення як властивість Maven:

<properties>
    <maven.javadoc.skip>true</maven.javadoc.skip>
</properties>

або як аргумент командного рядка:, -Dmaven.javadoc.skip=trueщоб пропустити генерацію Javadocs.


1
Ця відповідь насправді не відповідає на питання, оскільки там зазначено, що перемикання слід здійснювати за допомогою командного рядка.
Синіша Михайловський

3
Це ідеальне рішення для мультимодульного проекту з кількома модулями, що не генерує жодного javadoc і не спричинить помилку в іншому випадку.
Еммануель Бур

19

Додайте до конфігурації плагіна випуску в кореневому рівні pom.xml:

<configuration>
    <arguments>-Dmaven.javadoc.skip=true</arguments>
</configuration>

це не правильно з командного рядка, як цього вимагає запитання, але він чудово працює, якщо вам потрібно постійно відключити javadoc.
Lorenzo Sciuto

1

Для початківців користувачів Powershell важливо знати це "." є синтаксичним елементом Powershell, тому перемикач повинен бути укладений у подвійні лапки:

mvn clean install "-Dmaven.javadoc.skip = true"

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.