Eclipse에서 귀를 내보낼 때 배치 된 코드를 필터링하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1178213

문제

관련 귀 프로젝트와 함께 기본 웹 응용 프로그램 (Eclipse의 동적 웹 프로젝트)이 있습니다. 주니트 테스트 코드가 배포 이어 파일에서 벗어나도록 노력하고 있습니다.

내 웹 프로젝트에는 "SRC"라는 소스 폴더와 "테스트"라는 소스 폴더가 있습니다. Eclipse를 사용하여 내보낼 때 .class 파일을 "테스트"소스 폴더에서 귀에서 내보내야합니다.

나는 이것이 개미를 사용하는 사소한 일이지만 Eclipse를 사용하는 것을 사용하는 것은 불가능한 것 같습니다. 마우스 오른쪽 버튼을 클릭하고 귀 파일을 내보내십시오. 테스트 클래스는 항상 포함됩니다.

.setting/org.eclipse.wst.common.component.xml 파일을 수동으로 편집하면 테스트 폴더와 관련된 태그를 제거하지만 일부 개발자가 빌드 경로와 관련된 것을 변경하면 재생됩니다 ...

나는 분명한 것을 놓쳤다. 나는 미친 듯이 봤다.

도움이 되었습니까?

해결책

직접 가능하지 않은 것 같습니다. 기괴한 것입니다. 다음은 시도해 볼 수있는 몇 가지 해결 방법이 있습니다.

참고 나는 Java 파일을 웹 프로젝트에서 Java 프로젝트로 옮기는 것입니다 (어쨌든 따라야 할 좋은 방법 일 것입니다). 어느 쪽이든 다른 "테스트"Java 프로젝트를 생성하고 테스트 소스를 해당 프로젝트로 옮깁니다. 테스트 프로젝트는 "메인"Java 프로젝트를 종속성으로 선언하므로 테스트 유형에 액세스 할 수 있지만 전쟁에는 포함되지 않으므로 테스트 클래스가 배포되지 않습니다.

또는 하나의 프로젝트에 소스를 유지하려면 링크 된 리소스를 사용하도록 테스트 프로젝트를 구성 할 수 있습니다. 게시했습니다 또 다른 대답 이는 연결된 리소스를 사용하여 프로젝트에서 소스 위치를 공유하는 방법을 보여줍니다. 이 접근법을 통해 테스트 소스는 여전히 메인 프로젝트의 빌드 경로에 있지 않으므로 JAR에 번들로 번들링되지 않지만 프로젝트에 물리적으로 위치하므로 소스 제어가 더 간단합니다.

다른 팁

Eclipse 3.7을 사용하여 PDE를 제외하고 비슷한 일을하고 있습니다. Eclipse/OSGI 플러그인/번들을 배포하고 있으며 SRC 및 Test의 두 가지 Java 소스 디렉토리가 있습니다.

두 개의 Eclipse 프로젝트 파일의 내용을 빌드에서 테스트 코드를 분리하기 위해 조정했습니다.

.classpath:

<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry export="false" kind="src" path="test"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
    <classpathentry export="false" kind="lib" path="/thirdparty/junit/junit.jar"/>
    <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

이러한 변화는 독서로 동기를 부여했습니다 이것

이것이 당신의 상황에 적용되는지는 모르겠지만 나는 또한 수정해야했습니다. build.properties 파일, 생성 된 JAR 파일에서 '테스트'를 컴파일 한 결과를 제외합니다.

source.optimizing.jar = src/
#This doesn't contain test/ because we don't want it in the build.

bin.includes = META-INF/,\
               optimizing.jar
#The junit.jar is also exluded               

전체 프로젝트를 구축하면 테스트 파일이 완전히 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top