2014-08-27 2 views
3

부울 매개 변수가 하나 뿐인 Jenkins 작업이 있습니다. 이 매개 변수의 기본값은 false입니다. 필자는 POST URL로 빌드하고 토큰 및 매개 변수를 전달하여 ANT 빌드 스크립트 (다른 ​​작업)에서 원격으로 빌드합니다. 나는 (인코딩 문제의주의를 기울여야한다) 작은 따옴표로 묶여 URL과 (ANT 젠킨스와 대문자) 부울 매개 변수의 이름을 보고서라고이Jenkins 원격 매개 변수화 된 빌드는 항상 전달되는 매개 변수 값 대신 기본 매개 변수 값을 사용합니다.

curl -X POST 'MY_JENKINS_SERVER/job/JOB_NAME/buildWithParameters?token=12345;REPORTS=true' --user MY_USERNAME:MY_PASS 

참고. 또한 토큰과 다른 매개 변수를 분리하기 위해 앰퍼샌드 (&)를 사용하면 다음과 같은 오류가 발생합니다. "REPORTS"엔티티에 대한 참조가 ';'로 끝나야합니다. 구분 기호.

REPORTS 매개 변수의 값이 URL 문자열에 무엇이든 관계없이 매개 변수는 빌드 할 때 항상 기본값 인 false입니다. Jenkins에서 기본값을 true로 변경했으며 전달 된 매개 변수 값에 관계없이 항상 true입니다. 기본적으로 은 항상 기본값을 사용하고 전달 된 매개 변수 값을 무시합니다. 나는 또한 REPORTS 매개 변수를 전달하려고 시도했으며 물론 기본값을 사용합니다. 내 작업의 빌드 파일 (I 원격 트리거하고있는 하나)에서

, 나는 SO에 비슷한 질문을 통해 검토 한

$와 같은 매개 변수 {env.REPORTS}을 인쇄하지, 그러나 그들의 솔루션 작업 중 어떤 것도 나를 위해. URL 주위에서 매개 변수를 이동하려고 시도했지만 아무 것도 작동하지 않는 것 같습니다. 어떤 아이디어? 이 기준 라인

+0

으로 작성해야합니다. [ "foo"엔티티에 대한 참조가 ';'로 끝나야합니다. 구분 기호] (http://stackoverflow.com/questions/6483807/the-reference-to-entity-foo-must-end-with-the-delimiter) – BalusC

답변

3

:

끝나지해야 "보고서"엔티티에 대한 참조 ';'

대신 & 구분 기호, 이것은 젠킨스와 문제가되지 않습니다 &

노력하지만, 개미와 함께 XML 파일이다. &은 XML에 대한 특수 문자이므로 아무 것도없는 &의 평문 값을 갖기 위해서는 &

+0

감사합니다. 나는 그것이 그렇게 단순하다고 믿을 수 없다. 그렇다면 &으로 인코딩해야하는 이유는 무엇입니까? 필자가 착각하지 않는 한, 매개 변수화 된 빌드 문서 [link] (https://wiki.jenkins-ci.org/display/JENKINS/Parameterized+Build)는 URL을 인용해도 이스케이프가 필요하지 않다는 것을 암시하는 것처럼 보였다. – Jeeves

+0

당신의 경우에는 전혀 몰라요. 나에게''token = 12345 & REPORTS = true'는 큰 따옴표와 함께 아무런 문제없이 일했다. 하지만 *** ***은 ** 정확히 ** 같은 오류 메시지가있는 다른 곳에 문제가있었습니다. XML 파일 (ANT의 명령 줄 실행)에 텍스트로 '&'를 포함하고 해결책은'& ' – Slav

+0

잠깐 ... 내가 당신의 질문을 다시 읽었습니다. ANT 스크립트에서 '컬 (curl)'을 시작 했으므로 문제는 내 것과 똑같습니다. 그것은 XML입니다, 젠킨스와는 아무 관련이 없습니다. – Slav