Как отключить плагин 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>

есть ли способ отключить это из командной строки?

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

Ответы:


438

Поколение Javadoc можно пропустить, установив для свойства maven.javadoc.skipзначение true [ 1 ], т.е.

-Dmaven.javadoc.skip=true

(и не ложь)


1
См. Ответ @ Christoph-Tobias Schenke, чтобы узнать, как использовать дочерние модули.
18:30

Этот аргумент также может быть установлен непосредственно в jenkins, чтобы избежать этой проблемы (в Global MAVEN_OPTS, определенном в Configure System)
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.