2013-07-29 3 views
30

컴파일에서 제외시키려는 Java 소스 폴더가 있습니다.Maven : 컴파일시 Java 파일 제외

내 폴더는 qa/apitests/src/main/java/api/test/omi입니다.

pom.xml에 다음 항목을 qa/bamtests 아래에 추가했지만 도움이되지 않았습니다. 추가적으로 필요한 항목이 있습니까?

<build> 
    <resources> 
     <resource> 
     <directory>src/main/java</directory> 
     <includes> 
      <include>**/*.properties</include> 
      <include>**/*.xml</include> 
      <include>**/*.xsd</include> 
      <include>**/*.csv</include> 
     </includes> 
     <excludes> 
<exclude>src/main/java/api/test/omi</exclude> 
     </excludes> 
     </resource> 
</build> 
+0

위치 테스트 속성 'SRC/테스트/resources'에 대한'SRC/메인/resources'입니다. – khmarbaise

+0

'qa/bamtests '의 프로젝트는'qa/apitests'에서 소스를 어떻게 찾을 수 있습니까? –

+0

동일한 패턴을 제외로 사용하는 방법은 무엇입니까? **/test/omi/** boskop

답변

39

Maven Compiler Plugin을 사용하십시오. 당신은 컴파일에서 자바 소스를 제외 할 경우

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <configuration> 
    <excludes> 
     <exclude>**/api/test/omi/*.java</exclude> 
    </excludes> 
    </configuration> 
</plugin> 
+0

두 개의 주요'*'는 무엇을 의미합니까? –

+2

'**'는 '모든 디렉토리'를 의미합니다. –

+2

이 답변은 저에게 효과적이지 않았습니다. 이걸 봐 http://stackoverflow.com/a/19713000/358013 – blueskin

2

, 다음 그들에게

<plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <version>2.0.2</version> 
     <configuration> 
      <excludes> 
       <exclude>src/main/java/api/test/omi/*.java</exclude> 
      </excludes> 
     </configuration> 
    </plugin> 
</plugins> 

자원은 모든 자원을 최종 유물에 번들을 정의 플러그인 Maven Compiler Plugin 정의에 언급.

33

다른 답변은 "SRC/메인/자바"를 포함하지 않아야 경로를 제외하고, 나를 위해 일한 것을 제안 등의 제외 추가 : 사람들을위한

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-compiler-plugin</artifactId> 
     <configuration> 
     <excludes> 
      <exclude>com/filosync/store/StoreMain.java</exclude> 
     </excludes> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 
+0

src/main /를 삭제하면 사실입니다! – Dudi

11

테스트 소스<exclude> 태그 것을 제외 할 필요 작동하지. 대신 <testExclude>를 사용해야합니다 :

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>3.3</version> 
    <configuration> 
     <testExcludes> 
     <testExclude>**/PrefixToExclude*</testExclude> 
     </testExcludes> 
    </configuration> 
    </plugin> 
1

정상은 대답은 잘 작동하지만,이 제외 된 클래스/클래스하지-제외들에 의해/사용되는 경우 배제를 강제 할 수 없습니다 투표했다. maven-antrun-plugin를 사용

해결 방법 : 속성에 대한

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.8</version> 
    <executions> 
     <execution> 
      <phase>process-classes</phase> 
      <goals> 
       <goal>run</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <tasks> 
      <delete dir="target/classes/folder/to/exclude"/> 
     </tasks> 
    </configuration> 
</plugin>