【问题标题】:Maven javadoc.skip=true throws an errorMaven javadoc.skip=true 抛出错误
【发布时间】:2016-06-27 10:37:44
【问题描述】:

我正在尝试使用 javadoc.skip 参数构建我的项目

mvn clean install -Dmaven.javadoc.skip=true -Dmaven.test.skip=true -Pbpfle

但我一直收到错误提示

未知的生命周期阶段“.javadoc.skip=true”。您必须以 <plugin-prefix>:<goal><plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal> 的格式指定有效的生命周期阶段或目标。

我正在使用 Java (JDK) 8 和 Maven 3.3.3

这是否是 Java 的问题,因为当我使用 JDK 7(以及相同版本的 Maven)时它曾经可以工作?我正在 Windows PowerShell 中运行该命令。

【问题讨论】:

  • -Dmaven.javadoc.skip=true 之间可能有一个空格字符?这将使 Maven 让 .javadoc.skip=true 部分解释为一个阶段(如“清洁”和“安装”)。
  • 如果我将 -Dmaven.javadoc.skip=true 替换为 -D maven.javadoc.skip=true 似乎可以工作,而且它似乎可以工作。空白现在是如何变得重要的?
  • 你确定它真的可以添加空格吗?那里不应该有任何空间,实际上空间应该打破它
  • 是的,我确信当我没有放那个空格时它不起作用,当我添加空格时它开始起作用。

标签: java maven


【解决方案1】:

问题实际上与您启动 Maven 命令的方式有关。在 Windows Powershell 中,the dot . has a special meaning,因此它被解释为 just like the dash -

您需要使用反引号 ` 转义所有这些字符,如下所示:

mvn clean install `-Dmaven`.javadoc`.skip=true `-Dmaven`.test`.skip=true `-Pbpfle

【讨论】:

  • 这很有趣。我尝试在传统的命令提示符下运行相同的命令(-D 和 javadoc 之间没有空格)并且它可以工作。我想这是一些powershell问题。我猜与传统的命令提示符相比,powershell 解析命令参数的方式不同。
  • @thisisshantzz 是的。如果您想了解更多信息,我会链接到与这些运营商相关的问题:)。
【解决方案2】:

当我更换它似乎工作 -Dmaven.javadoc.skip=true-D maven.javadoc.skip=true

基本上在 -D 和 maven 之间添加一个空格。但我认为这不是必需的。

编辑:此问题仅在 Windows PowerShell 中出现。在 powershell 中添加空格似乎可以使命令起作用。在传统的命令提示符中,不需要空格,并且该命令的工作方式与我最初尝试的方式相同。

【讨论】:

    猜你喜欢
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多