Local paquete frasco experto subido a un almacén remoto - herramienta de carga por lotes (basado en la escena real que sea apropiado modificar el código)

preparativos

  • Nueva carpeta como un espacio de trabajo
    preparación de documentos

  • paquete Jar a ser cargado, Ejemplo: abc-interfaz-1.0.1-SNAPSHOT.jar

  • Crear un archivojar-info.txt

    • tarro de almacenamiento de archivos con un paquete de información para cargar
    • Formato de los datos: [groupId]: [artifactId]: [versión]
    • Las cifras por línea, asegúrese de que la información esté completa
    • Ejemplos
    	com.abc.o2o:sss-common:1.0.1-QA-SNAPSHOT
    	com.abc.o2o:sss-interface:1.0.1-RELEASE
    
  • Crear un archivo de código fuente de JavaUploadToRemoteMvnRepository.java

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * @Author jq.wang
 */
public class UploadToRemoteMvnRepository {

	// mvn 上传指令
    public static final String mvn_commond_format = "mvn deploy:deploy-file -DgroupId=%s -DartifactId=%s -Dversion=%s -Durl=%s -DrepositoryId=accountId -Dfile=%s";
	// mvn 远程仓库地址1
    public static final String release_mvn_url = "http://maven.abc.com/release/";
	// mvn 远程仓库地址2
    public static final String snopshot_mvn_url = "http://maven.abc.com/snaoshots/";

    public static void main(String[] args) throws Exception {
        try {
			// args 参数为jar-info.txt :包含jar信息的文件
            if (args == null || args.length == 0) {
                return;
            }
            System.out.println("read file : " + args[0]);
			// 读取文件
            List<String> commondLines = readFile(args[0]);
			// 调用cmd 指令,循环执行mvn上传指令
            for (String commondLine : commondLines) {
                Runtime.getRuntime().exec("cmd /k start " + commondLine);
                Thread.sleep(2000);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

	// 读取文件
    public static List<String> readFile(String fileName) throws IOException {
        FileReader fr = new FileReader(fileName);
        BufferedReader br = new BufferedReader(fr);
        String line = "";
        String[] arrs = null;
        List<String> mvnCmdList = new ArrayList<>();
		// 安装自定义的规则,解析文件; 然后拼接mvn上传的指令,缓存到list中返回
        while ((line = br.readLine()) != null) {
            //com.abc.o2o:abc-security:1.0.1-SNAPSHOT
            arrs = line.split(":");
            if (arrs.length != 3)
                continue;
            String file = arrs[1].concat("-").concat(arrs[2]).concat(".jar");
            if (arrs[2].toLowerCase().contains("release")) {
                mvnCmdList.add(String.format(mvn_commond_format, arrs[0], arrs[1], arrs[2], release_mvn_url,file));
            } else {
                mvnCmdList.add(String.format(mvn_commond_format, arrs[0], arrs[1], arrs[2], snopshot_mvn_url,file));
            }
        }
        br.close();
        fr.close();
        for (String s : mvnCmdList) {
            System.out.println(s);
			System.out.println();
        }
        return mvnCmdList;
    }
}

  • Compilar los archivos de Java: javac UploadToRemoteMvnRepository.javageneran archivos de clases

corrida

  • (1) Ejecutar Java
java UploadToRemoteMvnRepository jar-info.txt
  • (2) ejecutar el archivo por lotes
    creado el archivo run.bat, el contenido del archivo:
java UploadToRemoteMvnRepository jar-info.txt
pause

Adjuntos: Instrucciones

  • función :

    • De acuerdo con el número de versión subido a un almacén mavan diferente, dependiendo de si contienen distinguir LIBERACIÓN
  • prestar atención

    • Antes de cargar el paquete será cargado frasco, y ejecutar archivos en el mismo directorio
    • tarro de formato de nombre de paquete: [artifactId] - [versión] .jar
    • Si necesitas una cuenta antes de que puedan cargar, settings.xml antes de ejecutar la configuración del experto, id es accountId
    	<server>
    		<id>accountId</id>
    		<username>jq.wang</username>
    		<password>******</password>
    	</server>
    
  • corrida

    • java-jar UploadToRemoteMvnRepository info.txt o run.bat ejecutar directamente
    • El resultado: la ejecución de instrucciones de impresión
    • Cada paquete de comandos tarro de cargas se muestran en una ventana nueva
    • Cada dos segundos para subir un frasco
Publicado ocho artículos originales · ganado elogios 1 · visitas 141

Supongo que te gusta

Origin blog.csdn.net/C_Wangjq/article/details/105351267
Recomendado
Clasificación