2009-05-14 5 views
3

저는 Appfuse Archetype에서 시작하는 응용 프로그램을 만들려고하는데 이상한 문제가 있습니다. 일단 자동화 된 유닛 테스트와 통합 테스트를 위해 hsqldb를 사용하고 수동 테스트를 위해 mysql db를 사용하여 필자가 필요로 할 때 데이터를 쉽게 조작 할 수 있도록하기 위해 프로필을 자동으로 전환하는 것이 좋을 것입니다. 테스트 단계. 그렇게 할 수있는 방법이 있습니까?테스트 단계에서 다른 Maven 프로파일 사용

답변

7

이것이 정확히 무엇인지 묻지는 않지만 Maven 프로젝트에 대해 여러 필터를 설정하려면 다음을 수행 할 수 있습니다.

<filters> 
    <filter>/your/path/filter-${env}.properties</filter> 
</filters> 

이 설치 여러 프로필 사용 할 수 있습니다이 방법 :

<profiles> 
    <profile> 
    <id>local</id> 
    <properties> 
     <env>local</env> 
    </properties> 
    </profile> 
    <profile> 
    <id>test</id> 
    <properties> 
     <env>test</env> 
    </properties> 
    </profile> 
</profiles> 

당신은 다음 사용하여 관련 속성 파일로 빌드를 실행할 수 있습니다

mvn -P <profile id> 

이가 위치한 속성 파일을 가지고 필요 at :

/your/path/filter-local.properties 
/your/path/filter-test.properties 
+0

이것은 확실히 maven 실행에서 maven 실행으로 속성 파일을 전환하는 좋은 방법이지만 좀 더 세부적인 것을 기대하고 있습니다. 간단하게 을 실행하고 싶습니다. mvn clean jetty : 또는 유사한 것을 실행 한 다음 테스트 프로필에서 가져온 자리 표시 자로 리소스를 채운 다음 테스트가 끝나면 자동으로 다른 프로필로 전환하고 싶습니다. 그런 다음 자리 표시자를 바꾼 다음 부두 서버를 시작하는 데 사용됩니다. 기본적으로 다른 데이터베이스 구성에서 유닛 테스트를 실행하려고합니다 :-) – cdecker

+0

Maven 라이프 사이클의 여러 단계에서 다른 프로파일을 사용하고 싶습니까? 그게 가능한지 확신 할 수는 없지만 다른 사람이 대답하면 볼 수 있습니다. –

+0

동일한 실행의 여러 단계에 다른 프로필을 사용할 수 없습니다. 2.0.3 일 이래로이 문제에 부딪 혔습니다. 나는 mvn -PlocalTest 클린 패키지로이 문제를 해결한다. mvn -PfullBuild 클린 패키지 전개. – sal

2

이것이 도움이되는지 확신 할 수는 없지만 테스트를 실행할 때/src/main/resources의 리소스 파일을 대체하는/src/test/resources 폴더에 대체 리소스 파일을 지정할 수 있습니다.

테스트 단계에서 사용할 다른 db 연결을 지정하기 위해 여기서 대체 placeholder.properties 파일을 정의합니다.

관련 문제