4 MINDS

4MINDS Gestão de Conhecimento

Upload multiple artifacts to maven repository



Script para realizar upload de multiplos jars para um repositório nexus baseado numa estrutura de aquivos existente



#!/bin/bash


REPOSITORY_ID="mobile-mind-m2" ## autenticação
REPOSITOTY_URL="http://nexus.mobilemind.com.br/repository/mobile-mind-droid-m2"

## busca por todos .jar na pasta e sub pastas
for f in $(find `pwd` -name '*.jar'); do
   
    echo "post artefact $f"

    ## verifica se tem um POM
    POM="${f/.jar/.pom}"


    if [ -e $POM ]; then
       
        mvn deploy:deploy-file \
        -Dfile=$f \
        -DpomFile=$POM \
        -DrepositoryId=$REPOSITORY_ID \
        -Durl=$REPOSITOTY_URL

    fi

        ## se não tiver um POM busca as informações baseado na estrutura para geração do POM.
        BASE_FOLDER_NAME="mobile-mind"

        paths=(${f//// })
        len=${#paths[@]}


        version=${paths[$len - 2]}
        artifactId=${paths[$len - 3]}
        groupId="nada"
        ok='0'


        for it in ${paths[@]}; do
            #echo "it=$it"
            if [ $it == $BASE_FOLDER_NAME ]; then
                ok='1'
                continue
            fi

            if [ $it == $artifactId ]; then
                ok='0'
            fi

            if [ $ok == '1' ]; then
                if [ $groupId == "nada" ]; then
                    groupId="$groupId.$it"
                else
                    groupId="$it"
                fi
            fi

        done


        mvn deploy:deploy-file \
            -Dfile=$f \
            -DgroupId=$groupId \
            -DartifactId=$artifactId \
            -Dversion=$version \
            -Dpackaging=jar \
            -DrepositoryId=$REPOSITORY_ID \
            -Durl=$REPOSITOTY_URL
   

   
   
done