2013-03-20 1 views
0

Maven 플러그인 was6-maven-plugin을 사용하여 websphere에 배포하고 있습니다. 응용 프로그램을 설치할 때 새 응용 프로그램을 설치하는 경우 이라는 구성 값이 있으며 false이고 기존 응용 프로그램을 업데이트하는 경우 true입니다. 응용 프로그램을 새로 설치/업데이트하는 경우이 값을 수동으로 전환하지 않아도됩니다.Maven - 동적 POM 파일?

내가 보는 방식대로 설치하기 전에 항상 응용 프로그램을 제거하기 위해 uninstallApp 목표를 추가 할 수 있지만,이 방법은 다소 어리석은 방법입니다.

이 플러그인에는 서버에 설치된 모든 응용 프로그램을 출력하는 목표가 wsListApps 인 것으로 나타났습니다. 출력은 다음과 같습니다

 
[INFO] [wsadmin] WASX7209I: Connected to process "server1" on node 1234Node02 using SOAP connector; The type of process is: UnManagedProcess 
[INFO] [wsadmin] DefaultApplication 
[INFO] [wsadmin] IBMUTC 
[INFO] [wsadmin] MyApplicationEAR 
[INFO] [wsadmin] ivtApp 
[INFO] [wsadmin] query 

메이븐은 문자열 "MyApplicationEAR"이 출력을 검사하고이 발견 된 경우 "updateExisting"을 "true"로 설정하고, 그렇지 않으면 "false"를두고하는 것이 가능합니까?

답변

2

당신이 필요로하는 것은 라이프 사이클 동안, 단계가 당신의 was6-maven-plugin과 묶이기 전에 업데이트 할 수 있어야합니다. (이 속성을 <updateExisting>의 값으로 사용)

불행히도 maven 속성은 정적이며 런타임에 변경할 수 없습니다. 따라서 첫눈에 할 일은 불가능합니다.

그러나 플러그인이 있습니다 : properties-maven-plugin 런타임에 새 속성을 정의하는 데 사용할 수 있습니다. 속성 값은 그루비 스크립트로 정의 할 수 있습니다. 이제는 앱이 이미 존재하는지 여부를 알려주는 그루비 스크립트를 어떻게 작성할 수 있을까요?

솔직히, 나는 그것을 사용하는 것이 좋은지 모르겠습니다. 나는 failOnError을 false로 설정하여 매번 제거 목표를 실행하는 것이 아마도 가장 간단한 방법 일 것이라고 생각한다. 아마도 가장 좋은 방법 일 것이다.하지만 어쩌면 내가 누락 된 것일까?

+0

'failOnError' * 만 만들 수있는 방법이 있는가? uninstallApp'? 나는이 프로세스가'installApp' 동안 오류가 발생하면 실패하기를 원한다. – FrustratedWithFormsDesigner

+1

예. 실행 태그 내에 구성을 정의해야합니다. 자세한 내용은 http://maven.apache.org/guides/mini/guide-configuring-plugins.html#Using_the_executions_Tag를 참조하십시오. – ben75