2011-04-18 3 views
1

hudson에서 프로젝트를 릴리스하기 위해 hudson 작업을 설정하고 싶습니다. 하지만 문제가 있습니다 : 우리의 빌드 프로세스가 db에 연결이 필요한 테스트를 실행 중입니다. host : db의 포트가 시스템 매개 변수로 지정됩니다. 하지만 그러한 시스템 매개 변수를 공개하려고 할 때 : 준비는 중첩 된 프로세스를 생성하고 시스템 매개 변수를 전달하지 않는 것 같습니다. 어떻게 시스템 매개 변수를 중첩 된 프로세스로 전달할 수 있습니까?Maven Plugin 중첩 프로세스의 시스템 속성

maven 프로필로 할 수 있습니까?

의견이 있으십니까?

+0

속성 파일을 사용할 수 없습니까? ...? –

+0

안녕하세요, 속성 파일은 무엇을 의미합니까? 릴리스 플러그인에는 실행에 전달되어야하는 모든 매개 변수를 포함해야하는 일부 속성이 있어야한다고 생각했지만이 매개 변수를 찾을 수 없습니다. – user253202

답변

1

pom.xml 하지 읽기 시스템 속성, Environment variable properties을 볼 수 있습니다. 그러나 특정 컴퓨터에만있는 변수에 묶어서는 안됩니다. 예 : JAVA_HOME은 어디서나 작동하며 mydatabase.username은 작동하지 않습니다.

올바른 방법은 등록 정보 파일에 구성을 쓰고 pom에서 읽는 것입니다. 이 방법을 사용하면 문서화 된 구성 대신 누가 시스템 변수인지 알 수 있습니다. 또한 -D 매개 변수로 쉘 스크립트를 유지하는 것보다 덜 복잡합니다.

+0

-1은 시스템 속성을 읽을 수 없습니다. [documentation] (http://maven.apache.org/pom.html#Properties)를 보시면 pom.xml 파일에서 환경 변수와 시스템 속성을 볼 수 있습니다. – FrVaBe

+0

감사합니다. 귀하의 의견에 따라 답변을 업데이트했습니다. – Jano

1

-D 속성은 신뢰할 수있는 전파되지 않습니다 테스트 (나는 그것이 왜 일식과 함께 작동하지 않습니다) pluging에서 전파되지 않습니다. 명령 줄에서 maven을 사용할 때 argLine 속성을 사용하여 속성을 래핑하십시오. 이 코드에서 값을 읽어 테스트

mvn -DargLine="-D<property>=<value>" <goal> 

사용 System.getProperty로 전달합니다. 소식 System.getenvSytem.getProperty의 차이점에 대해 this 게시물을 확인하십시오.

(이 날의 전 answer에서 가져온 것입니다.)

+0

Thx for help,하지만이 속성은 응용 프로그램을 시작하기 위해 스프링 구성에서 해결되어야합니다. 테스트가 실행되기 전에. release 실행으로 생성 된 중첩 된 프로세스에 전달할 속성 목록을 지정하는 maven release plugin에 속성이 있습니까? – user253202

+3

필요한 경우 문서에 언급 된 [arguments] (http://maven.apache.org/plugins/maven-release-plugin/prepare-mojo.html#arguments) 속성이 있습니다. 그렇지 않으면 속성을 두 번 선언하십시오 (-D ... 및 -DargLine). 스프링 구성에서 속성을 해결하려면 [property-placeholder] (http://static.springsource.org/spring/docs/3.0.x)를 사용하여 속성 파일에 속성을 넣어야합니다. /spring-framework-reference/html/xsd-config.html#xsd-config-body-schemas-context-pphc). _pom.xml_ 문에 대한 – FrVaBe