Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java mvn依赖关系:如何分析工作?_Java_Maven_Maven 3 - Fatal编程技术网

Java mvn依赖关系:如何分析工作?

Java mvn依赖关系:如何分析工作?,java,maven,maven-3,Java,Maven,Maven 3,有人能告诉我mvn依赖关系:analyze是如何工作的吗?在我的一个项目中,mvn dependency:analyze的输出显示 [WARNING] Used undeclared dependencies found: [WARNING] org.apache.commons:commons-lang3:jar:3.4:compile [WARNING] com.fasterxml.jackson.core:jackson-annotations:jar:2.8.0:compil

有人能告诉我
mvn依赖关系:analyze
是如何工作的吗?在我的一个项目中,
mvn dependency:analyze
的输出显示

[WARNING] Used undeclared dependencies found:
[WARNING]    org.apache.commons:commons-lang3:jar:3.4:compile
[WARNING]    com.fasterxml.jackson.core:jackson-annotations:jar:2.8.0:compile
...
[WARNING] Unused declared dependencies found:
[WARNING]    org.springframework.boot:spring-boot-starter-test:jar:1.5.4.RELEASE:test
[WARNING]    org.springframework.restdocs:spring-restdocs-mockmvc:jar:1.1.3.RELEASE:test
[WARNING]    ch.qos.logback:logback-classic:jar:1.1.11:compile
有人能告诉我以下情况吗-

  • 找到的已使用未声明依赖项表示什么?这是否意味着这不是在
    pom.xml
    依赖项中声明的,而是在代码中使用的,并通过一些可传递的依赖项包含
  • 找到的
    未使用的声明依赖项
    是否只检查
    pom.xml
    中声明的
    依赖项
    ,还是检查可传递依赖项

Maven版本-3.5.0

如果我没记错的话,Maven使用WebASM框架分析字节码并检查是否使用了lib。不要相信它,因为有时候maven认为没有使用lib(dependency),但实际上是这样

找到的已使用的未声明依赖项表示什么?这是否意味着这不在pom.xml依赖项中声明,而是在代码中使用,并通过一些可传递的依赖项包含

没错

找到未使用的已声明依赖项是否只检查pom.xml中声明的依赖项,还是检查可传递依赖项

声明的依赖项是在POM中声明的依赖项。因此,插件在其检查中不包括可传递依赖项


请注意,插件默认情况下进行字节码分析,这对于仅与常量或注释一起使用的依赖项是有问题的。在某些情况下,这可能导致虚假报告。有关详细信息,请参见。

您共享的常见问题解答中的
usedDependencies
标志表示什么?我也看到了。但我还是不清楚。这是否意味着忽略
未使用的声明依赖项的结果
?通过
usedDependencies
-参数,您可以告诉插件依赖项,即使字节码分析发现它没有被使用,它们也总是被视为已使用。这有时有助于避免不正确的报告。因此,我同意分析中存在一些问题和误报。你建议用什么来代替?