Java 프로그램에서 프로그래밍 방식으로 Maven 릴리스를 시작하려고합니다. This webpage은 이것이 일반적으로 어떻게 수행되는지 보여줍니다. 그래서 내가 무슨 짓을했는지 :트리거 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);
}
}
This forum "는 릴리스를 할 befor을 단지 형태에서 모양과 당신은 컬 요청을 정교하게 할 수 있어야한다"제안, 그게 내가 멀리 얻을 무슨 짓을했는지. 출시는 적어도 시작됩니다.
나는 이제 모든 것을 벗어나는 방법을 모르겠습니다. 브라우저는 공백을 "+"로 표시하지만 데이터를 그렇게 보내면 작동하지 않습니다. 사실, "+"도 "% 20"도 공백으로 작동하지 않습니다.
여전히 빌드에서 Unable to commit files
이 표시되므로 사용자 이름/비밀번호/댓글 접두어에 문제가있는 것으로 확신합니다. Jenkins 자체는 로그인이 전송 되더라도 로그인 페이지 ("인증 필요")를 반환합니다.
Jenkins에서 Maven 릴리스를 트리거하는 올바른 방법은 무엇입니까?
작업 전 이미 Maven 프로젝트입니다. 그리고 "release"가 매개 변수라면, 나는 그것을 설정할 수있을 것입니다. 그러나 그렇지 않습니다. 작업이 Maven 작업으로 선언되면 추가되는 임의의 작업입니다. –