首页 文章

最新的nexus发布工件

提问于
浏览
0

我已经设置了一个Nexus存储库来存储我们构建的工件,第三方依赖项和自制的共享源代码头 .

我目前正在使用wget来检索第三方依赖项和共享源头,以便在构建我们的软件应用程序时使用(特定应用程序的源存储在单独的git存储库中) .

当您使用wget时,您基本上必须知道所需工件的确切版本 - 您必须明确知道最新版本号是什么 .

有没有另一种方法从maven发布nexus存储库中检索最新版本的工件而不知道版本号是什么?

如果有一种方法可以使用wget而不是maven本身,那将是理想的,因为我不想强迫用户安装apache maven只是为了从nexus下载工件 .

1 回答

  • 0

    我认为你不能只使用curl来做到这一点 . 您需要完成其他任务才能实现您的目标 .

    这是一种可能性:

    您应该首先访问maven存储库元数据文件 . (你会在这里找到文件:http://maven.apache.org/ref/3-LATEST/maven-repository-metadata/repository-metadata.html

    例如,假设您要从maven central下载最新版本的以下maven工件:

    groupId = javax
    artifactId = javaee-api
    

    下载以下文件:

    http://central.maven.org/maven2/javax/javaee-api/maven-metadata.xml

    它的内容将是这样的:

    <metadata>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <versioning>
            <latest>8.0</latest>
            <release>8.0</release>
            <versions>
                <version>7.0</version>
                <version>8.0</version>
            </versions>
            <lastUpdated>20170915063942</lastUpdated>
        </versioning>
    </metadata>
    

    然后,您需要访问最新的标签以检索最新版本 .

    文档说明以下关于最新或发布标记的含义:

    latest  String  What the latest version in the directory is, including snapshots
    release String  What the latest version in the directory is, of the releases only
    

    您应该在nexus存储库中找到此文件,并且应该使用类似xmllint的内容来获取所需的值 . 例如:

    curl http://central.maven.org/maven2/jx/javaee-api/maven-metadata.xml \
    | xmllint --xpath "/metadata/versioning/latest/text()" -
    

    要么

    curl http://central.maven.org/maven2/jx/javaee-api/maven-metadata.xml \
    | xmllint --xpath "/metadata/versioning/release/text()" -
    

    取决于你想要什么 .

    之后,您可以使用版本信息来组成要下载的工件的完整URL .

    希望这可以帮助 .

    干杯 .

    埃杜 .

相关问题