当前位置: 首页 > 知识库问答 >
问题:

将zip文件作为maven存储库导入Nexus OSS 3

公冶渝
2023-03-14

是否可以在Nexus OSS3中导入zip文件作为Maven存储库?有一个关于迁移的文档部分(https://books.sonatype.com/nexus-book/reference/migrating.html),但它似乎不适用于Nexus3,因为blob存储是一个blob...在Artifactory上,这就像将zip文件上传到现有的repo一样容易。我认为这可以通过脚本来完成,但我想知道是否有一个更简单的方法...

共有1个答案

鲁德佑
2023-03-14
#!/bin/sh
#$1 - filepath of the local repo where the tree begins
#$2 - repo id like in settings.xml e.g. myrepo
#$3 - url of the repo eg. http://my-nexus.at:8081/repository/myrepo_releases/

MAVEN_EXECUTABLE="/apache-maven-3.3.9/bin/mvn"

if [ $# -eq 4 ]
then
    echo "Search in repo: $1"
    find $1 -type f -iname "*.jar" -print0 | while IFS= read -r -d $'\0' line; do
    relative_path_name="${line/$1/}"
    echo "RelativePathName: $relative_path_name"

    IFS='/' read -r -a array <<< "$relative_path_name"

    length=${#array[@]}

    pos=0;
    artifactidends=$((length -1 -2))    #-1 because auf array starts at 0 and length returns the count

    versionends=$((length -1 - 1))      #-1 because auf array starts at 0 and length returns the count
    version="${array[$versionends]}"
    filenameends=$((length -1))
    filename="${array[$filenameends]}"

    artifactIdVersion=${array[$artifactidends]}"-"$version

    ## find out classification
    classification="${filename/.jar/''}"
    classification="${classification/$artifactIdVersion/''}"

    if [[ ${classification:0:1} == "-" ]]
    then
        classification=${classification:1}
    fi

    groupends=$((length - 3))

    group=

    for element in "${array[@]}"
    do
        if [ $pos -lt $groupends ]
        then
            echo "GroupPart: ${array[$pos]}"
            group=$group"."${array[$pos]}
        fi
        pos=$((pos + 1))

    done
    group=${group:1}
    echo "Group: $group"

    if [ $group == "$4" ]
    then
        echo "$relative_path_name"
        echo "ArtifactId: ${array[$artifactidends]}"
        echo "Version: $version"
        echo "Classification: $classification"
        echo "Group: $group"

        mavencmd="$MAVEN_EXECUTABLE deploy:deploy-file -DgroupId=$group -DartifactId=${array[$artifactidends]} -Dversion=$version -Dclassifier=$classification -Dpackaging=jar -Dfile=./$relative_path_name -DrepositoryId=$2 -Durl=$3"
        echo "MavenCMD: $mavencmd"
        eval $mavencmd
        echo "upload done"
    else
        echo "upload not done (group does not match: $group)"
    fi
    echo -e ""
    echo -e ""
done
else
    echo "USAGE"
    echo -e ""
    echo "   * Call the command with params:"
    echo "      ./upload_all_to_nexus.sh localRepoFilepath repoId repoUrl groupToConsider"
    echo -e ""
    echo "   * Example:"
    echo "      ./upload_all_to_nexus.sh /tmp/not_local_repository/ myrepo http://my-nexus.at:8081/repository/repo my.group"

fi
 类似资料:
  • 在本章中,我们将讨论如何从一个Bitbucket导入一个仓库到GitLab: 步骤(1): 登录到您的GitLab帐户并点击仪表板中的New project按钮: 步骤(2): 单击导入项目选项卡下的按钮: 步骤(3): 接下来,您需要登录到您的帐户。 如果您没有帐户,请点击注册链接创建一个新帐户,然后登录到帐户。 步骤(4): 当点击按钮(如步骤2所示)时,它将显示下面的屏幕并点击授予访问按钮:

  • 有没有办法使用java或任何其他语言从maven存储库下载jar文件? 在Maven项目中,当我添加依赖项时,如果本地系统上不存在jar文件,它通常会从远程存储库下载jar文件。 有没有办法做到这一点,而不用像在库中那样使用Maven,或者构造一个URL,然后获取jar?

  • 我正在尝试将位于azure datalake中的csv压缩为zip。该操作是使用datricks中的python代码完成的,我在其中创建了一个挂载点以将dbfs与datalake直接关联。 这是我的代码: 但是我收到了这个错误: 有什么办法吗? 提前感谢。

  • 我在Android Studio有功能齐全的项目。我想导入这个项目到CVS存储库,然后在另一台PC上检查。当导入到CVS时,只有一个选项可以选择:关键字替换,但我找不到好的解释什么是最好的选项。 我不知道问题出在哪里。如果在导入CVS或签出。 只有在生成项目后才会出现错误: 错误:任务“:app:ProcessDebugResources”执行失败。com.android.ide.common.P

  • 我正在运行一个部署到Google App Engine的Node.js应用程序。我还使用了winston库和'StackDriver Logging winston Plugin'[@google-cloud/logging-Winston]。 “链接到温斯顿日志设置教程” “链接到将日志导出到谷歌存储桶的教程” 我通过创建一个接收器将stackdriver日志导出到Google存储桶。目前,所有

  • 我想将Weblogic库放入本地存储库(安装和配置Maven以实现构建自动化和依赖关系管理),我的工作站上安装了Weblogic版本12.1.2。 我运行这个命令: 但我有一个错误: