Java 如何找到maven插件目标的依赖项

Java 如何找到maven插件目标的依赖项,java,maven,Java,Maven,我试图找出特定插件目标的依赖关系来自何处。我知道依赖关系的存在,因为Maven在我第一次运行目标时下载了它们。而且它们不是(直接)我的项目的依赖项,因为我首先运行了mvn clean install,而这些依赖项当时没有下载 在本例中,我试图在运行mvn sonar:sonar时找出依赖关系,但我希望答案是通用的。例如,尽管我已经构建了很多次这个项目,但当我运行这个目标时,Maven下载了一些新的JAR,比如Maven antrun插件 以下是我尝试过的一些事情: mvn dependency

我试图找出特定插件目标的依赖关系来自何处。我知道依赖关系的存在,因为Maven在我第一次运行目标时下载了它们。而且它们不是(直接)我的项目的依赖项,因为我首先运行了
mvn clean install
,而这些依赖项当时没有下载

在本例中,我试图在运行
mvn sonar:sonar
时找出依赖关系,但我希望答案是通用的。例如,尽管我已经构建了很多次这个项目,但当我运行这个目标时,Maven下载了一些新的JAR,比如Maven antrun插件

以下是我尝试过的一些事情:

  • mvn dependency:tree
    显示项目的依赖关系,但不显示插件目标的依赖关系(列表中不包括任何与SonarQube相关的内容)
  • mvn org.apache.maven.plugins:maven帮助plugin:3.2.0:effective pom-Dverbose=true
    也不包括任何与SonarQube相关的内容
  • mvn-X sonar:sonar
    打印出看起来像依赖关系图的内容,但它缺少Maven在我第一次运行
    sonar:sonar
    目标时下载的罐子
  • mvn-X依赖项:解析插件
    似乎是为了下载插件的依赖项,但没有捕获
    sonar:sonar
    依赖项。如果我清除Maven缓存,运行
    mvn dependency:resolve plugins
    ,然后运行
    mvn sonar:sonar
    ,Maven必须下载JAR

maven下载的依赖项通常存储在pc上的本地地址C:\Users\yourUser/.m2,这与您的项目无关,因此您不必重新加载已在其他项目中使用的依赖项


我希望我已经理解了您的问题,并且我的回答对您很有用,您好。

使用您的IDE导航到插件项目的POM,然后查看依赖关系树

或者通过将插件POM复制到文件系统并运行
mvn dependency:tree
手动执行此操作


有两件事。Sonar插件本身从Sonar服务器上单独加载一些东西。。。而真正的maven插件…正是您所寻找的?另一个选择是找到插件项目的POM。在internet上或使用IDE导航功能(例如,按住Ctrl键并单击项目POM中的插件声明)。不过,我不知道是否有一种方法可以实现一个虚拟的目标。@kaqao我忘了在“我尝试过的事情”中包含这一点。我现在已经添加了它。@RetoHöhener我试着使用mvnrepository.com来做这件事,但很明显,手动跟踪树非常耗时。我正在寻找如何确定插件的所有依赖项,与mvn dependency:tree对项目的作用类似,这只适用于Windows,缺少一些功能。更一般、更完整的是,它的默认值是
${user.home}/.m2/repository
,可以在中重新定义。