Eclipse에서 귀를 내보낼 때 배치 된 코드를 필터링하는 방법은 무엇입니까?
-
19-09-2019 - |
문제
관련 귀 프로젝트와 함께 기본 웹 응용 프로그램 (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
전체 프로젝트를 구축하면 테스트 파일이 완전히 없습니다.