我需要将项目的所有传递依赖项下载到命令行上的目录, 而没有
pom.xml文件或其他脚本。理想情况下,我将可以使用一个或两个命令来执行此操作。据我所知,这至少是mvn的两步过程。
为了获得我运行的依赖
$ mvn org.apache.maven.plugins:maven-dependency-plugin:2.6:get -DgroupId=org.jclouds.provider -DartifactId=rackspace-cloudservers-us -Dversion=1.5.8
哪个很棒。不幸的是,目标参数对我没有帮助,因为它不会将所有可传递的依赖项放入目标中。
因此,现在我需要将该JAR文件及其所有传递依赖项复制到我的lib目录中。我知道这部分已经在StackOverflow上被问了很多遍,但是对我来说还没有任何作用。我已经尝试了以下方法。
$ mvn dependency:copy-dependencies ...
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.1:copy-dependencies (default-cli): Goal requires a project to execute but there is no POM in this directory
和
$ mvn dependency:copy ...
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.1:copy (default-cli): Goal requires a project to execute but there is no POM in this directory
通过阅读有关副本依赖关系和副本的文档和其他答案,我认为我可以在命令行中使用它们而无需pom.xml,但mvn似乎需要一个。我的Maven版本是ApacheMaven 3.0.4(r1232337; 2012-01-17 02:44:56-0600)。
谁能给我一个使用不带pom.xml的mvn复制传递依赖项的示例吗?
有没有更好的方法来完成我要在这里完成的工作?
第一条命令几乎可以满足您的需求-相关依赖项的POM。一旦有了它,就不需要再运行另一个项目POM了copy:dependencies
:
这是一个例子:
mvn org.apache.maven.plugins:maven-dependency-plugin:2.7:get -DgroupId=org.jclouds.provider -DartifactId=rackspace-cloudservers-us -Dversion=1.5.8 -Dtype=pom
mvn org.apache.maven.plugins:maven-dependency-plugin:2.7:copy-dependencies -f /path/to/m2/repo/org/jclouds/provider/rackspace-cloudservers-us/1.5.8/rackspace-cloudservers-us-1.5.8.pom -DoutputDirectory=/path/to/target/dir/don't/use/.
正如Everett Toews指出的那样,您可以使用的其他选项copy:dependencies
来进一步优化下载的内容,例如通过添加-DexcludeTypes=test-jar
以过滤掉测试JAR。
是否有一种方法可以让gradle像maven一样将依赖项库下载到项目目录中?我知道gradle在本地机器目录中保留了自己的缓存,但是我怎么知道我的项目将使用哪些库,特别是我在build.gradle文件中定义的库有自己的依赖关系呢?
我使用以下基本Maven命令生成了一个项目: 该项目是正确创建的,我可以测试自动生成的App类,而没有任何问题的说明: 稍后,我向POM添加了一些依赖项,获得了以下文件: 最后,为了测试起见,我修改了之前由Maven自己生成的App类: 一系列奇怪的事情发生了: > 即使在POM中指定了较新版本的依赖项,但在.m2文件夹中,下载的版本似乎较旧(例如,commons-lang3的版本为2.1和2.5
在实际使用之前,我试图从maven项目下载所有插件依赖项。 我试过跑步: 这成功地下载了它的插件及其部分依赖项。例如,对于exec插件,我得到: 但是,当您实际使用插件时,例如: 事实证明,它的依赖项尚未完全下载。 这是出乎意料的,因为根据文档,excludeTransitive属性在默认情况下为false(显式设置它没有帮助)。在我看来,它只是从定义的插件下载了一个级别的可传递依赖项。 有没有办
我正在eclipse中建立一个项目。此项目通过命令行成功构建(所有、、)等命令都运行良好。同时在STS或Eclipse上设置此项目。我看到有些依赖项没有下载,尽管它们存在于中。但是,在maven存储库中搜索它们,并将jar下载到我的本地计算机,然后将它们添加到构建路径中,就可以在Eclipse上运行。 我们需要对eclipse做什么来确保它从存储库下载所有的依赖项。 我的POM:
我有一个包含以下文件的Java项目: C:\MyProject\myPackage\MyTests.class C:\MyProject\lib\junit-platform-console-standalone-1.5.2.jar C:\MyProject\lib\other-library.jar MyTests 文件是使用 IDE 编译的,该 IDE 具有 junit-platform-co
我正在使用IntelliJIDEA和maven作为构建工具在scala中编写spark应用程序。 我将它们部署在Azure HDInsight集群中。我为Intellij安装了Azure插件。 我使用事件集线器对数据进行流式处理,并在将其写入存储之前执行一些转换。 我对maven的工作有相当的了解--我认为它将pom.xml中提到的依赖关系获取到某个本地位置用户的.m2文件夹。当我们执行mvn包检