Maven 2 如何从Maven Central下载JAR而不编写任何pom.xml

Maven 2 如何从Maven Central下载JAR而不编写任何pom.xml,maven-2,java,Maven 2,Java,我想要如下的东西 我只想要一个实用工具,它能够从Maven存储库下载JAR及其依赖项,而不会对项目的构建方式施加任何限制 我想要这样的东西: download-jar --dest=lib/ 'commons-io:commons-io:jar:1.4' 它还应该能够下载依赖项 更新: 我不知道pom.xml应该是结构化的 我唯一需要完成的任务是下载JAR,我希望有一个工具可以完成这项任务,而不必为超级信息而困扰我 有这样的事吗?你应该看看,也许。。。特别是它的mojo如果您想将maven依赖

我想要如下的东西

我只想要一个实用工具,它能够从Maven存储库下载JAR及其依赖项,而不会对项目的构建方式施加任何限制

我想要这样的东西:

download-jar --dest=lib/ 'commons-io:commons-io:jar:1.4'
它还应该能够下载依赖项

更新:

我不知道pom.xml应该是结构化的

我唯一需要完成的任务是下载JAR,我希望有一个工具可以完成这项任务,而不必为超级信息而困扰我


有这样的事吗?

你应该看看,也许。。。特别是它的mojo

如果您想将maven依赖项下载到lib目录中,请使用带有
复制依赖项
功能的依赖项插件

mvn -DoutputDirectory=./lib -DincludeArtifactIds=commons-logging,commons-io dependency:copy-dependencies 
如果没有
-DincludeArtifactIds
部分,您将下载每个依赖项

如果您想在没有特定项目的情况下下载工件*请参见下文**:

mvn -DgroupId=commons-io -DartifactId=commons-io -Dversion=1.4 dependency:get

资源:

  • *见下文**
关于同一主题:

  • *见下文**
有趣的评论:

  • *@Pascal Thivent: 无需设置POM,无需开发自己的工具,使用mvn dependency:get。这是这个问题的正确答案


看一看。它允许从maven存储库中解析依赖项,而不需要maven本身过于复杂。

在收到错误消息后,我还必须指定
-DrepoUrl

Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.1:get 
  (default-cli) on project standalone-pom: The parameters 'repositoryUrl' 
  for goal org.apache.maven.plugins:maven-dependency-plugin:2.1:get are 
  missing or invalid -> [Help 1]
下面是我使用的命令:

mvn -DgroupId=edu.umd -DartifactId=cloud9 -Dversion=1.3.5 \
  -DrepoUrl="http://repo1.maven.org/maven2" dependency:get

此外,
-Ddest=~
不起作用。它始终坚持将jar安装到
~/.m2/存储库

Maven3默认情况下使用依赖插件v2.1:

$ mvn dependency:get -DrepoUrl=http://download.java.net/maven/2/ \
   -DgroupId=commons-io -DartifactId=commons-io -Dversion=1.4
使用Maven2仍然需要编写规范名称:

$ mvn2 org.apache.maven.plugins:maven-dependency-plugin:2.1:get \
   -DrepoUrl=http://download.java.net/maven/2/ \
   -DgroupId=commons-io -DartifactId=commons-io -Dversion=1.4
使用参数
artifact
将工件的名称设置为group:artifact:version:

使用
LATEST
下载工件的最新版本:

$ mvn dependency:get -DrepoUrl=http://download.java.net/maven/2/ \
   -Dartifact=commons-io:commons-io:LATEST

非常感谢。这需要有一个合适的pom.xml。这是我想避免的。您知道不定义pom就可以获得相同结果的方法吗?制作一个合适的maven pom.xml并使用它下载依赖项大约需要5分钟。设置一些其他软件,并将其配置为刮取库并解析POM.xmls以获取依赖项,然后递归下载这些依赖项,这将花费相当长的时间。@Chris无需设置POM,无需开发自己的工具,使用
mvn dependency:get
@Colin您需要依赖项插件的2.1版。请跟随我对这个问题的评论。
dependency:get
很好,但是有没有办法将工件下载到一个特定的目录中,而不是下载到本地Maven repo中?谢谢!!!这对我非常有帮助。不需要
pom.xml
needed;)在命令的中间有什么“-\”?-“\”允许将命令复制粘贴到终端或shell脚本中。否则,换行符将单独触发每一行的执行。它可能是一条长线,但不使用<代码>空白:预包装,不幸的是,太长的行被切断了。IulianOnofrei与“mvn”无关:)bash中使用字符“\”来连接一个命令,该命令被拆分为两行或多行。我看到了,我很恼火,直到我意识到必须删除该命令,它才起作用,所以对于没有经验的windows用户来说,这是一个缺点:(我不认为这是重复的,因为引用的问题涉及将DEP提取到本地m2 repo,而这个问题指定了“不施加任何约束”,并给出了一个显示自定义目的地(lib/)的示例。我完全同意。答案是:
mvn-Dartifact=commons io:commons io:1.4:jar-DoutputDirectory=$(pwd)-dpackage=jar依赖项:copy
改进的参数顺序:mvn依赖项:copy-DoutputDirectory=$(pwd)-Dartifact=commons io:commons io:1.4:jar
$ mvn dependency:get -DrepoUrl=http://download.java.net/maven/2/ \
   -Dartifact=commons-io:commons-io:LATEST