【问题标题】:How to download JAR with classifier from Maven repository?如何从 Maven 存储库下载带有分类器的 JAR?
【发布时间】:2019-04-02 08:13:31
【问题描述】:

我正在尝试从 maven 存储库下载名为 mygroup-myid-myversion-jar-with-dependencies.jar 的 JAR 并尝试了命令

mvn -q org.apache.maven.plugins:maven-dependency-plugin:2.1:get -DrepoUrl=MYURL -Dartifact=mygroups:myid:myversion:jar-with-dependencies

mvn -q org.apache.maven.plugins:maven-dependency-plugin:2.1:get -DrepoUrl=MYURL -Dartifact=mygroups:myid:myversion-jar-with-dependencies

两者都因找不到工件而失败。

这个附录叫“分类器”吗?

如何用分类器加载 JAR?

【问题讨论】:

  • 将其作为依赖项添加到您的构建中?当然不要忘记分类器...?
  • @khmarbaise 我没有任何版本 :)
  • artifact 的格式是`groupId:artifactId:version[:packaging[:classifier]].`...所以这行不通...顺便说一句:我建议使用更新的maven-dependency-plugin 的版本

标签: java maven command-line maven-dependency-plugin


【解决方案1】:

如果您有更多要下载的内容,请使用 -Dclassifier=<classifier>-Dclassifiers=<classifiers>

这对我有用:

mvn com.googlecode.maven-download-plugin:download-maven-plugin:artifact -DgroupId=org.jolokia -DartifactId=jolokia-jvm -Dversion=1.6.0 -Dclassifier=agent 

【讨论】:

    【解决方案2】:

    这件事发生在我身上。我在其中一个互联网站点上有一个远程存储库,我们的内部连接没有从该主机远程获取这些依赖项。我们有一个安全设置,只有 nexus 服务器可以从外部世界连接,我们的开发机器无法访问这些类型的远程存储库主机。

    所有工件都很好,可以通过代理存储库下载,但有些不是,特别像下面这个带有依赖分类器的工件。

    <dependency>
        <groupId>com.asset</groupId>
        <artifactId>integration-adapter</artifactId>
        <version>1.28.76</version>
        <classifier>jar-with-dependencies</classifier>
    </dependency>
    

    以下是适用于我们的开发团队的步骤。

    1.) 作为管理员,我可以远程下载那些有问题的工件。

    2.) 从受保护的主机中,使该文件可用。

    3.) 从 Nexus https://support.sonatype.com/hc/en-us/articles/213465818-How-can-I-programmatically-upload-an-artifact-into-Nexus-2- 访问此链接

    4.) 这就是我构建/部署到内部存储库的方式,以便客户可以在他们自己的项目特定构建期间下载。

    mvn deploy:deploy-file -DgroupId=com.asset -DartifactId=integration-adapter -Dversion=1.28.76 -Dclassifier=jar-with-dependencies -DgeneratePom=true -Dpackaging=jar -DrepositoryId=nexus -Durl= "http://your-nexus-host:8081/nexus/content/repositories/repo-releases/" -Dfile=integration-adapter-1.28.76-jar-with-dependencies.jar -DupdateReleaseInfo=true

    按照上述方式在我们的公司关系中创建 pom 文件和元数据,以便 maven 客户可以下载这些工件。

    5.) 在您的 .pom 文件中,请在下面添加这些依赖项:

    看起来在这个远程存储库(外部主机)中,这些文件是直接上传的,这就是为什么缺少 maven pom 文件,我们作为消费者/客户无法使用他们拥有的其他工作工件正常构建它。

    注意:因此,如果您要将工件发布到外部世界并使您的工件可下载,请确保您了解并阅读上述第 3 步。

    【讨论】:

      猜你喜欢
      • 2011-09-17
      • 1970-01-01
      • 1970-01-01
      • 2019-05-31
      • 2016-08-18
      • 1970-01-01
      • 2018-04-08
      • 2011-12-31
      • 2011-12-04
      相关资源
      最近更新 更多