从maven项目下载所有插件依赖项

Sir*_*irs 3 maven maven-dependency-plugin

我试图在实际使用它们之前从maven项目下载所有插件依赖项.

我试过跑:

mvn dependency:resolve-plugins
Run Code Online (Sandbox Code Playgroud)

这成功下载了它的插件和部分依赖项.例如,对于exec插件,我得到:

... 
[INFO] Plugin Resolved: exec-maven-plugin-1.6.0.jar
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-toolchain/2.2.1/maven-toolchain-2.2.1.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-toolchain/2.2.1/maven-toolchain-2.2.1.jar (37 KB at 437.4 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact-manager/2.2.1/maven-artifact-manager-2.2.1.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-artifact-manager/2.2.1/maven-artifact-manager-2.2.1.jar (66 KB at 709.6 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/3.0.20/plexus-utils-3.0.20.jar
Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-utils/3.0.20/plexus-utils-3.0.20.jar (238 KB at 1785.2 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/commons/commons-exec/1.3/commons-exec-1.3.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/commons/commons-exec/1.3/commons-exec-1.3.jar (54 KB at 610.9 KB/sec)
[INFO]     Plugin Dependency Resolved: maven-toolchain-2.2.1.jar
[INFO]     Plugin Dependency Resolved: maven-project-2.2.1.jar
[INFO]     Plugin Dependency Resolved: maven-model-2.2.1.jar
[INFO]     Plugin Dependency Resolved: maven-artifact-2.2.1.jar
[INFO]     Plugin Dependency Resolved: maven-artifact-manager-2.2.1.jar
[INFO]     Plugin Dependency Resolved: maven-core-2.2.1.jar
[INFO]     Plugin Dependency Resolved: maven-plugin-api-2.2.1.jar
[INFO]     Plugin Dependency Resolved: plexus-utils-3.0.20.jar
[INFO]     Plugin Dependency Resolved: commons-exec-1.3.jar
...
Run Code Online (Sandbox Code Playgroud)

但是,当您实际使用插件时,例如:

mvn exec:exec
Run Code Online (Sandbox Code Playgroud)

事实证明它的依赖关系尚未完全下载.

    [INFO] --- exec-maven-plugin:1.6.0:exec (default-cli) @ ARandomProject ---
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-toolchain/2.2.1/maven-toolchain-2.2.1.pom
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-toolchain/2.2.1/maven-toolchain-2.2.1.pom (4 KB at 6.9 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven/2.2.1/maven-2.2.1.pom
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven/2.2.1/maven-2.2.1.pom (22 KB at 179.4 KB/sec)
...
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/reporting/maven-reporting-api/2.2.1/maven-reporting-api-2.2.1.jar (10 KB at 21.8 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-descriptor/2.2.1/maven-plugin-descriptor-2.2.1.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/doxia/doxia-logging-api/1.1/doxia-logging-api-1.1.jar (12 KB at 23.0 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/maven-monitor/2.2.1/maven-monitor-2.2.1.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/doxia/doxia-sink-api/1.1/doxia-sink-api-1.1.jar (13 KB at 25.0 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
Downloaded: https://repo.maven.apache.org/maven2/commons-cli/commons-cli/1.2/commons-cli-1.2.jar (41 KB at 79.2 KB/sec)
Downloading: https://repo.maven.apache.org/maven2/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/maven-plugin-descriptor/2.2.1/maven-plugin-descriptor-2.2.1.jar (39 KB at 73.4 KB/sec)
...
Run Code Online (Sandbox Code Playgroud)

这是意料之外的,因为根据文档,默认情况下excludeTransitive属性为false(并且显式设置它没有帮助).从我看到的,它只从定义的插件下载一级传递依赖.

有没有办法让依赖插件在实际需要之前下载所有传递插件依赖项,而不是只下载第一级依赖项?

lin*_*01n 6

你应该执行,mvn dependency:go-offline如果你真的需要一切准备.看一下这个 :

依赖性:去脱机

Apache Maven依赖插件

  • 您可能还需要`dependency:resolve-plugins`,甚至可能还不够(请参阅https://issues.apache.org/jira/browse/MDEP-82)。 (2认同)
  • 事实上,dependency:go-offline 似乎很少能达到 100%。我正在为当前的项目拔掉头发。 (2认同)