[java] Eclipse .classpath / .project 파일에는 무엇이 있습니까?

최근 팀원 중 한 명이 Eclipse 프로젝트에 문제가있었습니다. Tomcat이 응용 프로그램의 JAR을 배포하지 않았습니다.

결국 .classpathEclipse 파일이 프로젝트가 정상인 팀 구성원과 동일하지 않은 것으로 나타났습니다 . .classpath파일이 정상인 프로젝트 의 파일 로 교체 되었고 Tomcat 배포가 완료되었습니다.

호기심에서 벗어나 무언가가 잘못되면 미래에 무엇을 볼지 , 파일 내부에 무엇이 있는지 알 수 있습니다. 거기에 무엇을 추가 할 수 있습니까? 그 의미는 무엇입니까?.classpath.project



답변

Eclipse는 플러그인의 런타임 환경입니다. Eclipse에 표시되는 거의 모든 것은 Eclipse 자체가 아니라 Eclipse에 설치된 플러그인의 결과입니다.

.project파일은 핵심 Eclipse 플랫폼에 의해 유지되고, 그 목표는 일반, 플러그인 독립적 인 Eclipse보기에서 프로젝트를 설명하는 것입니다. 프로젝트 이름은 무엇입니까? 작업 공간의 다른 프로젝트는 무엇을 의미합니까? 프로젝트를 빌드하는 데 사용되는 빌더는 무엇입니까? “빌드”의 개념은 Java 프로젝트뿐만 아니라 다른 유형의 프로젝트와도 관련이 있습니다.

.classpath파일 이클립스 JDT 기능 (기준 유지 기능 = 플러그인 세트). JDT는 프로젝트에 여러 개의 “메타”파일을 보유합니다 (프로젝트 .settings내부의 디렉토리 참조 ). .classpath파일은 단지 그들 중 하나입니다. 특히, .classpath파일을 제대로하기 위해 JDT 기능 요구 사항이 프로젝트를 컴파일하는 정보가 포함되어 프로젝트의 소스 폴더 (즉, 무엇을 컴파일하는); 출력 폴더 (로 컴파일 할 위치 ); 및 클래스 경로 항목 (예 : 작업 공간의 다른 프로젝트, 파일 시스템의 임의 JAR 파일 등).

이러한 파일을 한 시스템에서 다른 시스템으로 맹목적으로 복사하면 위험 할 수 있습니다. 예를 들어, 임의의 JAR 파일이 클래스 경로에있는 경우 (즉, 작업 공간 외부에 있고 절대 경로 이름 지정으로 참조되는 JAR 파일) 파일을 .classpath이식 할 수 없도록 렌더링 되고 파일을 수정해야합니다. 가지고 다닐 수 있는. .classpath파일 이식성 을 보장하기 위해 따라야 할 모범 사례가 있습니다 .


답변

.project

작업 공간에서 프로젝트가 작성되면 프로젝트를 설명하는 프로젝트 설명 파일이 자동으로 생성됩니다. 이 파일의 유일한 목적은 프로젝트를 자체 설명하여 서버에 압축 또는 릴리스 된 프로젝트를 다른 작업 공간에서 올바르게 다시 작성할 수 있도록하는 것입니다.

.classpath

클래스 경로는 프로젝트에서 Java 빌더가 고려할 Java 소스 파일 및 자원 파일을 지정하고 프로젝트 외부에서 유형을 찾는 방법을 지정합니다. Java 빌더는 Java 소스 파일을 출력 폴더로 컴파일하고 자원을 여기에 복사합니다.


답변

언급 된 파일은 다양한 플러그인으로 확장 가능하므로 완전한 참조를 사용할 수 없습니다.

기본적으로 .project 파일은 빌더 및 프로젝트 특성 설정과 같은 프로젝트 설정을 저장하고 .classpath 파일은 실행 중에 사용할 클래스 경로를 정의합니다. 클래스 경로 파일에는 프로젝트의 폴더에 해당하는 src 및 대상 항목이 포함됩니다. con 항목은 JVM 라이브러리와 같은 일종의 “가상”항목을 설명하는 데 사용되거나 Eclipse 플러그인 종속성의 경우에 사용됩니다 (특별한 src 항목을 사용하여 일반 Java 프로젝트 종속성이 다르게 표시됨).


답변

이 일식 문서에는 .project파일 의 마크 업에 대한 세부 사항이 있습니다. 프로젝트 설명 파일

.project파일을 다음과 같이 설명합니다 .

작업 공간에서 프로젝트가 작성되면 프로젝트를 설명하는 프로젝트 설명 파일이 자동으로 생성됩니다. 이 파일의 목적은 프로젝트를 자체 설명하여 서버에 압축 또는 릴리스 된 프로젝트를 다른 작업 공간에서 올바르게 다시 작성할 수 있도록하는 것입니다. 이 파일은 항상 “.project”라고합니다.


답변