기존 프로젝트의 자동화 된 통합 테스트를위한 기본 클래스를 작성하고 프로젝트 종속성이있는 장애물을 실행했습니다.클래스 경로에 추가되지 않은 Gradle 프로젝트 리소스
제 (추상화) 프로젝트 레이아웃이있다 :
project/
MainProject
Plugins/
...
ConfigurationProject
IntegrationTestProject
IntegrationTestProject을 갖는 후자 다음 레이아웃 ConfigurationProject시 의존성이 :
ConfigurationProject/
PluginConfigs/
<plugin configuration files>
<main configuration files>
특히, 기본 구성 파일이 상주 프로젝트의 루트. 내 클래스 경로에 추가하려는 시도에서, 내 기본 build.gradle는이 다음
project('ConfigurationProject') {
description = 'Configuration'
sourceSets.main.resources.srcDir projectDir
}
이 이클립스 패키지를 프로젝트 자원의 일부가되는, 조립으로 루트에있는 모든 파일을 같이 괜찮아 보이는 것 같다 모든 것이 예상대로.
그러나 실제로 통합 테스트를 실행하면 ConfigurationProject 리소스가 클래스 경로에없는 것처럼 보입니다. 구성 정보를 가져 오지 못하고이 스 니펫의 출력에있는 ConfigurationProject가 부족하다는 것을 확인했습니다. ConfigurationProject는 IntegrationTestProjects가 자원으로 프로젝트 루트를 추가 할 때 난 단지이 문제를 관찰
dependencies {
compile project(':ConfigurationProject')
}
을 gradle.build 사용 IntegrationTestProject에 포함되어 ADDN
public void classpathScanner() {
ClassLoader c=getClass().getClassLoader();
System.out.println("c="+c);
URLClassLoader u=(URLClassLoader)c;
URL[] urls=u.getURLs();
for (URL i : urls) {
System.out.println("url: "+i);
}
}
g 하위 폴더를 sourceSets에 프로젝트의 괜찮아 보인다 (그리고이 프로젝트에서 다른 곳에서 사용됩니다). 구성 파일을 하위 폴더로 이동하는 것은 내가 고려한 옵션이며 다른 해결책을 찾지 못할 경우 제정 할 예정이지만이 작업 과정을 포함하지 않는 옵션이 있는지 알고 싶습니다.
프로젝트 루트를 리소스 폴더로 추가해서는 안됩니다. 개인적으로 나는 표준 src/main/resources에 충실한다 –