我是Maven的新手,如果这是一个非常基本的问题,那么请原谅我。
我正在做一个使用maven的项目,当我为我的项目传递site命令时,我得到了错误。
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-site-plugin:3.1:site (default-site)
on project mobileads: Execution default-site of goal
org.apache.maven.plugins:maven-site-plugin:3.1:site
failed: A required class was missing while executing
org.apache.maven.plugins:maven-site-plugin:3.1:site:
org/sonatype/aether/graph/DependencyFilter我知道maven-site-plugin有一个问题:3.1版本。
如果我显式地包含了最新版本的maven-site- disappears.But (3.4)这个问题,我的问题是它在哪里拾取maven-site-plugin:3.1,因为在我的项目的pom.xml中我看不到这个插件,所以它指示我它正在从某个地方拾取一些默认设置。
我想知道该文件的名称以及该文件在resides中的位置,这样我就可以看到所有设置。我使用MAC。
提前谢谢。
拉杰什
发布于 2014-11-06 16:03:17
它在一个Maven发行版jars中,即在$MAVEN_HOME/lib/maven-core-X.X.X.jar中。在META-INF/plexus/components.xml文件中。原因如下:
曾几何时(在Maven2中),在没有明确指定之前,插件总是使用最新版本。这个决定基于两个假设:插件总是越来越好,所以你想获得最新的插件,而且,由于插件jars不是你产品的一部分(甚至不是它的生产类路径),所以它有时会崩溃是可以接受的。
后来他们意识到这是一个非常糟糕的想法,因为它使您的构建不可重现。因此,通过将插件的版本固定到Maven发布之日可用的插件的最新发布版本,修复了该问题。
因此,最好的做法是创建一个带有<pluginManagement>部件的父pom.xml,并确定在那里使用的所有插件的版本。
https://stackoverflow.com/questions/26774325
复制相似问题