触发Maven远程释放

我想通过Java程序以编程方式启动Maven发行版。 这个网页显示了这是如何完成的。 这就是我所做的:

    final URL url = new URL("http://jenkins/job/MyProject/m2release/submit");

    final HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
    urlConnection.setRequestMethod("POST"); 
    urlConnection.setDoOutput(true);

    final String userpass = "User:Password";
    final String authentication = "Basic " + DatatypeConverter.printBase64Binary(userpass.getBytes());
    urlConnection.setRequestProperty("Authorization", authentication);

    try (final OutputStream os = urlConnection.getOutputStream();
            final BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));) {
        writer.write("releaseVersion=1.2.3&");
        writer.write("developmentVersion=1.2.4-SNAPSHOT&");
        // writer.write("isDryRun=on&"); // uncomment for dry run
        writer.write("scmUsername=User&");
        writer.write("scmPassword=Password&");
        writer.write("scmCommentPrefix=[test]&");
        writer.write("json={"releaseVersion":"1.2.3","developmentVersion":"1.2.4-SNAPSHOT","isDryRun":false}&");
        writer.write("Submit=Schedule Maven Release Build");

        writer.flush();
    }

    urlConnection.connect();

    try (BufferedReader reader = new BufferedReader(
            new InputStreamReader(urlConnection.getInputStream(), "UTF-8"))) {
        for (String line; (line = reader.readLine()) != null;) {
            System.out.println(line);
        }
    }

这个论坛建议“只要看看你做一个发布的形式,你应该能够制定一个cURL请求”,这就是我做到这一点。 发布至少开始。

我现在不是如何逃避一切。 浏览器将空格显示为“+”,但如果以这种方式发送数据,则不起作用。 实际上,“”,“+”和“%20”都不能用作空间。

尽管如此,我仍然Unable to commit files在构建中Unable to commit files ,所以我很确定用户名/密码/注释前缀有问题。 即使发送登录,Jenkins本身也会返回登录页面(“需要身份验证”)。

在Jenkins上触发Maven发布的正确方法是什么?


好的,旧方法中缺少的参数是:

writer.write("specifyScmCredentials=on&");
writer.write("specifyScmCommentPrefix=on&");

这里想到的声明是“并不是所有的Jenkins工作都是平等的”。

您发布的代码只需使用参数releaseVersion和developmentVersion调用一个名为MyProject的Jenkins作业。

然而,这些代码与MyProject没有任何关系。 这可能是一个旨在构建Maven项目,Gradle项目或.NET项目的工作。

你想做什么(调用Maven发布插件)是Jenkins作业本身的责任。

查看MyProject的配置,特别是调用运行发布插件的Maven构建步骤。

有用的链接

  • Maven发布插件
  • 在詹金斯建立一个Maven项目
  • 为Jenkins构建提供参数
  • 链接地址: http://www.djcxy.com/p/93201.html

    上一篇: Trigger Maven Release Remotely

    下一篇: Gradle stuck at building project in Android Studio