我可以通过install:install-file安装一个工件, 但我怎么下载藏物呢?
例如:
mvn download:download-file -DgroupId=.. -DartifactId=.. -Dversion=LATEST
我可以通过install:install-file安装一个工件, 但我怎么下载藏物呢?
例如:
mvn download:download-file -DgroupId=.. -DartifactId=.. -Dversion=LATEST
当前回答
你可以使用dependency:copy (http://maven.apache.org/plugins/maven-dependency-plugin/copy-mojo.html),它接受插件配置部分中定义的工件列表,并将它们复制到指定的位置,如果需要,可以重命名它们或剥离版本。如果本地存储库或反应器中不存在工件,则此目标可以解析来自远程存储库的工件。
并不是插件的所有属性都可以在maven CLI中使用。可以指定定义了“User Property:”属性的属性。在下面的例子中,我将junit下载到我的临时文件夹中,并从jar文件中剥离版本。
mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:copy -Dartifact=junit:junit:4.11 -DoutputDirectory=/tmp -Dmdep.stripVersion=true
在哪里 Artifact =junit:junit:4.11是maven坐标。你指定的人造体为groupId:artifactId:version[:packaging[:classifier]]
(感谢Pascal Thivent首先提供了他的https://stackoverflow.com/a/18632876/2509415。我补充另一个答案)
其他回答
在没有mvn的情况下下载最新maven工件的一行代码:
curl -O -J -L "https://repository.sonatype.org/service/local/artifact/maven/content?r=central-proxy&g=io.staticcdn.sdk&a=staticcdn-sdk-standalone-optimizer&e=zip&v=LATEST"
你可以使用dependency:copy (http://maven.apache.org/plugins/maven-dependency-plugin/copy-mojo.html),它接受插件配置部分中定义的工件列表,并将它们复制到指定的位置,如果需要,可以重命名它们或剥离版本。如果本地存储库或反应器中不存在工件,则此目标可以解析来自远程存储库的工件。
并不是插件的所有属性都可以在maven CLI中使用。可以指定定义了“User Property:”属性的属性。在下面的例子中,我将junit下载到我的临时文件夹中,并从jar文件中剥离版本。
mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:copy -Dartifact=junit:junit:4.11 -DoutputDirectory=/tmp -Dmdep.stripVersion=true
在哪里 Artifact =junit:junit:4.11是maven坐标。你指定的人造体为groupId:artifactId:version[:packaging[:classifier]]
(感谢Pascal Thivent首先提供了他的https://stackoverflow.com/a/18632876/2509415。我补充另一个答案)
要在指定位置复制工件,请使用copy而不是get。
mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.2:copy \
-DrepoUrl=someRepositoryUrl \
-Dartifact="com.acme:foo:RELEASE:jar" -Dmdep.stripVersion -DoutputDirectory=/tmp/
你也可以在PowerShell中使用docker:
docker run -it --rm -v ${PWD}:/build/source -v ${HOME}/.m2:/build/.m2 --net=host aemdesign/centos-java-buildpack:jdk8 /bin/bash --login -c 'mvn dependency:get -Dmaven.repo.local=/build/.m2/repository -DrepoUrl=https://repo1.maven.org/maven2 -Dartifact=io.prometheus.jmx:jmx_prometheus_javaagent:LATEST -Ddest=/build/source/jmx_prometheus_javaagent.jar'
或者用bash:
docker run -it --rm -v $PWD:/build/source -v $HOME/.m2:/build/.m2 --net=host aemdesign/centos-java-buildpack:jdk8 /bin/bash --login -c 'mvn dependency:get -Dmaven.repo.local=/build/.m2/repository -DrepoUrl=https://repo1.maven.org/maven2 -Dartifact=io.prometheus.jmx:jmx_prometheus_javaagent:LATEST -Ddest=/build/source/jmx_prometheus_javaagent.jar'
下面是我最终使用Maven 3.1.1下载名为“component.jar”的工件的最新版本的方法(其他建议没有,我认为主要是由于Maven版本的更改)
这实际上下载了文件并将其复制到本地工作目录
从bash:
mvn dependency:get \
-DrepoUrl=http://.../ \
-Dartifact=com.foo.something:component:LATEST:jar \
-Dtransitive=false \
-Ddest=component.jar \