2011-09-28 3 views
1

각각의 특정 기능이 포함 된 다른 Eclipse Java 프로젝트에서 내 응용 프로그램을 개발하려고합니다. 그런 다음 하나의 완전한 Java 프로젝트에서 이들을 결합하려고합니다.Eclipse에서 두 개 이상의 프로젝트를 연결하는 방법은 무엇입니까?

그러나 소스를 연결할 때 문제가 있습니다.

하위 프로젝트는 상위 프로젝트 클래스를 올바르게 참조 할 수 있지만 상위 프로젝트에서 액세스하는 일부 원본 파일은 하위 프로젝트에서 식별 할 수 없습니다.

나는 ParentProject에서 Java 내에서 "src \ main \ resources \"로 액세스하는 작업 영역/ParentProject/src/main/resources/file을 가지고 있습니다.

그러나, 런타임에 ChildProject은 파일에 액세스 할 수없는 예외가 발생합니다 : '파일 :/E를 :/이클립스 % 20workspace/ChildProject/SRC/메인/자원/파일'그래서

, 사용하는 경우 메서드는 ChildProject에서 ParentProject의 클래스 경로를 다소 ChildProject로 전송됩니다. 내 질문은이 문제를 해결하는 방법입니다.

나는 문제가 무엇인지 분명히 밝히고 어떤 도움을 주시면 감사하겠습니다.

Btw는

감사합니다,

페 타르 : 그것은이 How to link project in eclipse를 설명하지만, 난 여전히 아이 프로젝트는 상위 프로젝트에 액세스 리소스에 액세스 할 수없는 오류가 있습니다.

답변

3

당신이해야 할 일에 대해 완전히 확신 할 수는 없지만, 당신이 순환 의존성을 만들려고 노력하고 있다는 것을 알 수 있습니다. 프로젝트 a가 프로젝트 b에 의존하지만 프로젝트 b는 프로젝트 a에 의존하는 종속성을 피하기를 원합니다. 유스 케이스와 작성하려고하는 것에 대해 더 자세한 정보를 제공하면, 어떻게 의존 관계를 구조화 할 수 있는지에 대한 지침을 제공해 드리겠습니다.

희망이 도움이됩니다.

+0

이전 게시물에 약간의 혼란이 있었기 때문에 다시 설명해야합니다. 다음 디렉토리에 프로젝트 ProjectModel이 있습니다. workspace/ProjectModel/src ...리소스 파일을 보관할 폴더가 workspace/ProjectModel/src/main/resources /에 있습니다. ProjectModel 소스 빌드 경로에는 ProjectModel/src/main이 포함됩니다. Java의 resources 폴더에있는 파일에 "src \ main \ resources \"액세스하고 있습니다. 모델 프로젝트를 사용하고 뷰를 제공해야하는 ProjectView를 만듭니다. 그러나 뷰 프로젝트는 모델의 "src \ main \ resources"폴더에 액세스 할 수 없습니다. – Petar

+0

리소스를 직접로드하지 않도록하십시오. Eclipse 플러그인에서 리소스를로드하는 방법은 http://www.vogella.de/blog/2010/07/06/reading-resources-from-plugin/을 참조하십시오. Java 프로젝트의 Classloader를 통해 리소스를로드하는 방법은 http://www.javaworld.com/javaworld/javaqa/2003-08/01-qa-0808-property.html을 참조하십시오. –

+0

Btw, ClassLoader.getResourcesAsStream ("path")를 사용하면 프로젝트에서 참조 된 라이브러리로 "경로"가 포함 된 경우에만 Eclipse에서 작동합니다. 그렇지 않으면 나를 정정하십시오. – Petar

3

부모 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 클릭하십시오. 그런 다음 왼쪽의 Java Build Path를 클릭하십시오. 다음으로 프로젝트 탭을 클릭하십시오. 하위 프로젝트 추가가 아닌 경우 하위 프로젝트가 필수 프로젝트로 선택되어 있는지 확인하십시오.

부모 프로젝트에도이 작업을 수행해야합니다.

+0

나는 당신이 말한 것과 꽤 혼동합니다. 자식 프로젝트를 부모 프로젝트에 대한 종속성으로, 부모 프로젝트를 자식 프로젝트에 대한 종속성으로 추가해야한다는 의미라면 두 프로젝트 모두에 오류를 나타내는 빨간색 물음표가 나타납니다. 그럼에도 불구하고 나는 여전히 같은 오류가 있습니다. 앞서 말했듯이, 이미 자식 프로젝트의 Java 빌드 경로 속성 섹션에 필요한 프로젝트로 부모 프로젝트를 넣었습니다. – Petar

+0

부모님과의 유추는 나를 혼란스럽게합니다. 기본적으로 다른 프로젝트에 의존하는 프로젝트가 있습니다. 나는 당신이 의존성을 거꾸로 배선했을지도 모른다라고 생각한다. 다른 프로젝트의 수업을 필요로하지 않는 프로젝트는 다른 프로젝트에 의존해야합니다. –

+0

"다른 프로젝트에서 어떤 클래스도 필요로하지 않는 프로젝트는 다른 프로젝트에 의존해야합니다"예, 이것은 정확히 수행 한 작업입니다. 그러나 어떤 이유로 리소스 폴더에 액세스 할 수 없습니다. – Petar

관련 문제