如何使用Maven简单地下载JAR?

如何使用Maven简单地下载JAR?,maven,jar,Maven,Jar,如何在内置Maven脚本期间下载JAR 通常情况下,Maven不用于“下载”,而是用于构建过程。因此,通常需要执行以下步骤: 通过定义项目的原型和一些所需的属性来定义新项目 将要使用的库定义为依赖项 使用mvn compile运行Maven 作为一个副作用,您将已将该库下载到本地Maven存储库中。有很多插件可以处理依赖项,因此请看一看。Maven不是这样工作的。以下是您最接近我的知识: mvn dependency:get -DremoteRepositories=http://repo1.m

如何在内置Maven脚本期间下载JAR

通常情况下,Maven不用于“下载”,而是用于构建过程。因此,通常需要执行以下步骤:

  • 通过定义项目的原型和一些所需的属性来定义新项目
  • 将要使用的库定义为依赖项
  • 使用
    mvn compile运行Maven

  • 作为一个副作用,您将已将该库下载到本地Maven存储库中。有很多插件可以处理依赖项,因此请看一看。

    Maven不是这样工作的。以下是您最接近我的知识:

    mvn dependency:get -DremoteRepositories=http://repo1.maven.org/maven2/ \
                       -DgroupId=junit -DartifactId=junit -Dversion=4.8.2 \
                       -Dtransitive=false
    
    请注意,除transitive之外的所有参数都是必需的。
    还要注意的是,Maven会将jar下载到本地存储库中,而且(据我所知)没有明智的方法将其复制到本地目录中

    mvn dependency:get -Dartifact=org.riversun:random-forest-codegen:1.0.0 -Ddest=./
    
    参考资料:


    如果您只想从maven mirror上下载一次JAR,我建议您可以手动完成:

    对于Maven 1:

    对于Maven 2:

    这些是maven将从中获取JAR的存储库(无论如何是一个镜像)——您可以在您选择的webbrowser中轻松访问它们,并下载JAR等。只需浏览层次结构(它看起来像任何Java Package层次结构),直到找到工件,然后选择正确的版本,就可以了

    例如,在org.hibernate组的hibernate core 3.6.6.Final版本中,您可以在下面找到:

    或者从3.1开始,简单地说
    mvn依赖项:get-Dartifact=org.springframework:spring instrument:3.2.3.RELEASE
    请参阅。这对我来说真的很好

    我的用例是,我想下载一些依赖项jar以部署到QA服务器,并且是手动完成的(在Maven构建之外)。我不确定您的用例是什么。

    转到。
    搜索您想要下载的工件,从结果列表中选择版本,然后简单地下载捆绑包。

    注意:这个答案适用于
    直接从maven下载JAR,而不需要任何脚本。
    [这就是Google在这里指导我的方式]

    假设
    mvn
    依赖关系如下:

    <dependency>
        <groupId>com.zaxxer</groupId>
        <artifactId>HikariCP</artifactId>
        <version>2.4.7</version>
    </dependency>
    
    
    com.zaxxer
    然后搜索
    g:“com.zaxxer”和a:“HikariCP”和v:“2.4.7”
    (只需搜索
    HikariCP
    也可以。您可能需要从结果中选择适当的
    GroupId
    版本


    搜索结果->下载
    列中,您应该看到
    jar javadoc.jar sources.jar
    可直接下载

    您可以设置一个pom.xml来定义依赖项(您要复制的jar)。然后使用目标将Jar复制到所需位置。

    您可以将Jar包下载到特定目录

    mvn dependency:get -Dartifact=org.riversun:random-forest-codegen:1.0.0 -Ddest=./
    

    使用下面的代码剪贴

    result = subprocess.check_output('mvn org.apache.maven.plugins:maven-dependency-plugin:2.8:get \
                                         -DgroupId=%s \
                                         -DartifactId=%s \
                                         -Dversion=%s \
                                         -Dtransitive=false \
                                         -DremoteRepositories={repos_string} \
                                         -Dpackaging=jar \
                                         -DoutputDirectory=%s' % (group_id,
                                                                  artifact_id,
                                                                  version_name,
                                                                  des_path), shell=True)
        logger.info("success download jar: %s" % each_version)
    except Exception as e:
        logger.error("Error in download jar : %s" % str(e))
    

    可以从Gitlab Maven私有存储库下载JAR。这个URL是在运行某个Maven命令时出现的,所以有点粗糙,但对我来说是有效的

    像这样:

    wget --header "PRIVATE-TOKEN: ${GITLAB_PRIVATE_TOKEN}" "https://gitlab.com/api/v4/projects/${GITLAB_PROJECT_ID}/packages/maven/${MAVEN_PACKAGE_NAME}/${MAVEN_VERSION}/${JAR_FILE}"
    
    在哪里,

    • GITLAB_PRIVATE_令牌是一个具有正确“api”的GITLAB令牌(其他令牌不够)
      • GITLAB_项目ID,例如146237
      • MAVEN_包名称,例如com/bar/foo
      • MAVEN_版本,例如0.0.1
      • JAR_文件,例如foo-0.0.1.JAR
    您可以使用:

    mvn dependency:copy -Dartifact=<group>:<artifact-name>:<version> -DoutputDirectory=/tmp/my_custom_dir
    
    mvn依赖项:复制-Dartifact=:


    注意:另一种“dependecy:get”方法已被弃用。

    +1或use,它有一个搜索界面,并提供指向工件的直接链接。我尝试上面的ibiblio链接时,它们是空目录。肖恩与mvnrepository.com的链接运行良好。谢谢下载到哪里?有或没有POM?另请参见:bundle是什么意思?警告:maven的默认下载链接不使用https,在假设您的下载没有被破坏之前,请仔细检查url。当一个jar文件依赖于十几个其他jar文件,而这些文件本身可能依赖于更多的jar文件时,一次下载一个是非常耗时的。这个答案与maven无关,因此不回答OP的问题。对于那些不想这样做的人了解maven:运行命令
    mvn dependency:copy dependencies
    ,查看
    /target/dependency/
    以查看所有必需的jars@chrispolzer它在Maven Dependency Plugin 2.8中执行,同时输出有关弃用的警告消息。它在当前版本(3.1.1)中不再工作。在jenkins管道步骤中定义“正常”,您只需要下载并部署一个jar:)对于像我这样不了解Maven但被迫使用它的人:它在
    ~/.m2/repository/
    中下载jar。它工作正常,但我必须在包周围放上“”,比如-Dartfiact=“groupId:artifactId:version.”Was using powershell.dest已被弃用。这可以通过两个命令完成:mvn dependency:get-Dartifact=org.riversion:random-forest-codegen:1.0.0:0.8.5:jar:nodeps mvn dependency:copy-Dartifact=org.riversion:random-forest-codegen:1.0.0:jar:nodeps-doutdirectory=。