经常问的问题
- dependency-maven-plugin 和 maven-dependency-plugin 有什么区别?
-
执行
mvn dependency:unpack
或dependency:copy
从命令行执行时,我得到“一个或多个必需的插件参数对于 'dependency:unpack' 无效/缺失” - 为什么我会收到缺少记录的目标或参数的错误?
- 为什么 Maven 将“dependency:xxx”解析为旧的 org.codehaus.mojo:dependency-maven-plugin?
- 为什么我无法仅解压特定文件?
- 为什么我的依赖性分析报告
Unused declared dependencies
?
- dependency-maven-plugin 和 maven-dependency-plugin 有什么区别?
-
其实它们是一样的,只是它被移动和重命名了。dependency-maven-plugin 托管在 Mojo 上,而 maven-dependency-plugin 托管在 Apache 上。推荐使用的插件是 maven-dependency-plugin。
-
执行
mvn dependency:unpack
或dependency: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
参数的报告。