经常问的问题

  1. dependency-maven-plugin 和 maven-dependency-plugin 有什么区别?
  2. 执行mvn dependency:unpackdependency:copy从命令行执行时,我得到“一个或多个必需的插件参数对于 'dependency:unpack' 无效/缺失”
  3. 为什么我会收到缺少记录的目标或参数的错误?
  4. 为什么 Maven 将“dependency:xxx”解析为旧的 org.codehaus.mojo:dependency-maven-plugin?
  5. 为什么我无法仅解压特定文件?
  6. 为什么我的依赖性分析报告Unused declared dependencies
dependency-maven-plugin 和 maven-dependency-plugin 有什么区别?

其实它们是一样的,只是它被移动和重命名了。dependency-maven-plugin 托管在 Mojo 上,而 maven-dependency-plugin 托管在 Apache 上。推荐使用的插件是 maven-dependency-plugin。

[最佳]


执行mvn dependency:unpackdependency:copy从命令行执行时,我得到“一个或多个必需的插件参数对于 'dependency:unpack' 无效/缺失”

为了使其工作,您必须配置 ArtifactItems,如此处所示。请注意,从命令行执行插件时,您必须将配置标签放在执行之外。

如果您没有正确执行此操作,错误将如下所示:

[0] inside the definition for plugin: 'maven-dependency-plugin', specify the following:
      

[最佳]


为什么我会收到缺少记录的目标或参数的错误?

最新文件已发布,可能会在实际发布之前发布。检查以确保目标/参数是最新版本。 -或者- Maven 可能正在解析旧的 codehaus 版本的依赖插件看下一个问题。

[最佳]


为什么 Maven 将“dependency:xxx”解析为旧的 org.codehaus.mojo:dependency-maven-plugin?

由于 Maven 在 2.0.7 ( MNG-2926 ) 之前的版本中存在错误,搜索顺序被颠倒并导致 Mojo 插件取代 Apache 中具有相同前缀的插件。当 Apache 发布 maven-dependency-plugin 时,Mojo 的元数据被清理了。如果您仍然遇到此错误,则可能是您的本地存储库或代理/内部存储库中有旧的元数据。从您的存储库/代理中删除/org/codehaus/mojo/maven-metadata.*将导致它被刷新。或者,您可以在 pom 中明确指定 groupId(如果您使用的是绑定目标),或者在命令行上,使用 groupId:artifactId:version:mojo,即 mvn org.apache.maven.plugins:maven-dependency-plugin:2.5:unpack

[最佳]


为什么我无法仅解压特定文件?

排除将覆盖包含声明。这意味着如果您指定 excludes=**/* ,includes=**/foo,您将排除所有内容。如果你只想要 foo,那么只需指定包含。用于解包的 plexus 组件使用以下代码来确定要解包的文件:return isIncluded( name ) AND !isExcluded( name );

[最佳]


为什么我的依赖性分析报告Unused declared dependencies

默认情况下,依赖分析是在字节码级别完成的:任何没有进入字节码的东西都不会被检测到。例如,常量、具有源保留策略的注释或 javadoc 链接就是这种情况。

如果依赖项的唯一用途包括此类未检测到的构造,则将依赖项分析为未使用。从 2.6 开始,您可以强制使用带有usedDependencies参数的报告。

[最佳]