2011-08-04 3 views
1

프로젝트 용 통합 테스트 POM을 작성하려고합니다. 우리는 프로젝트를 다운로드하고 설치/압축 해제 (maven-dependency-plugin 사용)하고 있지만 프로젝트의 한 가지주의 사항은 아직 공간이있는 경로에서 실행할 수 없다는 것입니다. $ {project.build.directory}를 평가하고 공백이 있으면 사람이 읽을 수있는 오류가 발생하는 매우 간단한 방법을 찾고 있습니다. 나는 이것이 약간의 시간이 걸리기 때문에 의존성을 다운로드하기 전에 이것을 원한다.경로의 공백을 테스트하고 적절한 오류를 제공하려면 어떻게합니까?

답변

2

이것은 antrun 플러그인 및 <contains> 조건의 도움으로 수행 할 것입니다.

<build> 
    <plugins>      
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-antrun-plugin</artifactId> 
     <version>1.6</version> 
     <executions> 
     <execution> 
      <phase>validate</phase> 
      <goals> 
      <goal>run</goal> 
      </goals> 
      <configuration> 
      <target> 
       <fail message="project.build.directory(${project.build.directory}) contains spaces"> 
       <condition> 
        <contains string="${project.build.directory}" substring=" "/> 
       </condition> 
       </fail> 
      </target> 
      </configuration> 
     </execution> 
     </executions> 
    </plugin> 
    </plugins> 
</build> 
+0

전염병과 같은 antrun 플러그인을 피하기 위해 필자의 메이븐 파일에 대해 들었습니다. 다른 아이디어가 있습니까? – Jared

+0

@ Jared. 20 회 이상 라인을 작성하고'maven-enforcer-plugin'에 대한 커스텀 룰을 생성 할 수 있습니다. http://maven.apache.org/enforcer/enforcer-api/writing-a-custom-rule.html. BTW, antrun에 대한 반대 의견은 무엇입니까? 저에게 올바른 목적을위한 올바른 도구가 여기 있습니다. –

+0

필자는 개인적으로 antrun 플러그인에 이의가 없지만, 매우 비 maven-esque로 해킹하는 데 종종 사용되기 때문에 가능하면 사용하지 않으려는 사람 (내 회사의 사람 포함)이 있습니다 방법. 아무도 다른 길을 찾지 못하면 나는 대답을 받아 들일 것입니다. – Jared

관련 문제