【问题标题】:Why `maven-site-plugin` present in maven java project为什么在 maven java 项目中存在`maven-site-plugin`
【发布时间】:2020-11-04 04:56:11
【问题描述】:

我刚刚使用 Intellij 创建了一个空的 Maven 项目并运行了 mvn dependency:resolve-plugins

Plugin Resolved: maven-site-plugin-3.3.jar
[INFO]     Plugin Dependency Resolved: maven-reporting-exec-1.1.jar
[INFO]     Plugin Dependency Resolved: maven-core-3.0.jar

pom.xml 看起来像这样

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org</groupId>
    <artifactId>lucid</artifactId>
    <version>1.0-SNAPSHOT</version>    
</project>

更新: 我按照建议尝试了effective-pom,结果如下。

<plugin>
    <artifactId>maven-site-plugin</artifactId>  <!-- org.apache.maven:maven-core:3.6.1:default-lifecycle-bindings -->
    <version>3.3</version>  <!-- org.apache.maven:maven-core:3.6.1:default-lifecycle-bindings -->
    // some other config
</plugin>

由于我没有具体说明这个插件 (maven-site) 或 (maven-core),所以很难理解。

为什么 Maven 站点插件会与其他插件一起出现,我该如何移除它?

【问题讨论】:

  • 你有父 POM 吗?
  • 没有父 pom @JFMeier,上面更新了。
  • 你看过有效的 POM 了吗?
  • 它在有效 pom 中,但仍然不明白为什么要添加它。 @JFMeier

标签: java maven maven-3 maven-site-plugin


【解决方案1】:

这是Maven内部definition of the site lifecycle引入的:

        <default-phases>
          <site>
            org.apache.maven.plugins:maven-site-plugin:3.3:site
          </site>
          <site-deploy>
            org.apache.maven.plugins:maven-site-plugin:3.3:deploy
          </site-deploy>
        </default-phases>

它不是你的 pom 或任何父 pom 的一部分。

您显示的effective-pom 输出有一个指向源的指针,位于org.apache.maven:maven-core:3.6.1:default-lifecycle-bindings

    <artifactId>maven-site-plugin</artifactId>  <!-- org.apache.maven:maven-core:3.6.1:default-lifecycle-bindings -->
    <version>3.3</version>  <!-- org.apache.maven:maven-core:3.6.1:default-lifecycle-bindings -->

【讨论】:

  • 我正在检查这个maven.apache.org/ref/3.6.3/maven-core/…。在默认绑定中找不到插件。如果可能的话,你能帮忙解释一下那部分吗?
  • site 是它自己的生命周期,而不是 default 生命周期的一种包装类型。见Lifecycles Reference - site Lifecycle
  • 基本上我的理解是“每个包装都有默认的插件绑定”,然后“每个插件都有自己的生命周期”。所以,我仍然无法理解插件是否不是包装的默认绑定的一部分,为什么它是默认生命周期绑定的一部分。如果我理解错误,请纠正我。
  • 有关生命周期(defaultcleansite)以及将目标与 default 相关联的不同包装类型(即常规构建)之间差异的一些指导,请参阅 stackoverflow.com/questions/26607834/… ) 生命周期。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-02
相关资源
最近更新 更多