프로젝트 설명 파일

설명: 프로젝트가 작업공간에 작성될 때 프로젝트를 설명하는 프로젝트 설명 파일이 자동으로 생성됩니다.  이 파일의 목적은 프로젝트의 자체 설명을 작성하여 서버에 압축되거나 릴리스되는 프로젝트를 다른 작업공간에서 올바르게 재작성할 수 있게 하는 것입니다.  이 파일은 항상 ".project"라고 하며 프로젝트 컨텐츠 영역의 직접 구성원으로 배치됩니다.  파일의 이름은 org.eclipse.core.resources.IProjectDescriptionDESCRIPTION_FILE_NAME static 필드를 통해 노출됩니다.

이 파일의 이름, 위치 및 컨텐츠는 작업공간 API의 일부입니다.  이것은 이들 요소가 파일의 기존 사용자를 중단하는 방식으로 변경되지 않는다는 의미입니다.  그러나 이후 파일에 추가될 가능성을 고려하여 마크업에 추가 요소 및 속성을 추가할 수 있는 권한이 예약됩니다.  그러므로 설명 파일 컨텐츠를 읽는 클라이언트는 알 수 없는 요소 및 속성을 허용해야 합니다.

클라이언트는 자체 책임하에 프로젝트 설명 파일을 수정, 삭제 또는 대체합니다.  유효하지 않거나 누락된 설명 파일이 있는 프로젝트는 일반적으로 사용할 수 없습니다.  작업공간 시작 시 올바르지 않은 설명 파일이 있는 프로젝트가 발견되면 이 프로젝트가 닫히고 프로젝트 설명 파일이 수정될 때까지 열 수 없습니다.  작업공간은 일반적으로 누락되거나 올바르지 않은 설명 파일을 자동으로 수정하려고 시도하지 않습니다.  이에 대한 예외는 누락된 프로젝트 설명 파일이 작업공간 저장 및 IProject.setDescription에 대한 호출 시 재생성된다는 것입니다.

프로젝트 설명 파일을 수정하는 것은 IProject.setDescription을 통해 프로젝트 설명을 변경하는 것과 대체로 유사합니다.  한 가지 예외는 프로젝트 특성을 추가 또는 제거해도 해당 특성의 구성 또는 구성 해제 메소드를 트리거하지 않는다는 것입니다.  프로젝트 이름에 대한 변경사항이 무시된다는 점도 예외사항입니다.

새 프로젝트가 기존의 프로젝트 설명 파일을 포함하는 위치에서 작성되면 해당 설명 파일의 컨텐츠가 프로젝트 설명으로 간주됩니다.  한 가지 예외는 이 파일의 프로젝트 이름이 작성 중인 프로젝트의 이름과 일치하지 않으면 무시된다는 것입니다.  디스크의 설명 파일이 유효하지 않으면 프로젝트를 작성할 수 없습니다.


 

구성 마크업:

   <!ELEMENT projectDescription (name, comment, projects, buildSpec, natures, linkedResources)>

   <!ELEMENT name EMPTY>

   <!ELEMENT comment EMPTY>

   <!ELEMENT projects (project)*>
   <!ELEMENT project EMPTY>

   <!ELEMENT buildSpec (buildCommand)*>

   <!ELEMENT buildCommand (name, arguments)>

   <!ELEMENT name EMPTY>

   <!ELEMENT arguments (dictionary?)>

   <!ELEMENT dictionary (key, value)*>

   <!ELEMENT key EMPTY>

   <!ELEMENT value EMPTY>

   <!ELEMENT natures (nature)*>

   <!ELEMENT nature EMPTY>

   <!ELEMENT linkedResources (link)*>

   <!ELEMENT link (name, type, location)>

   <!ELEMENT name EMPTY>

   <!ELEMENT type EMPTY>

   <!ELEMENT location EMPTY>

예제: 다음은 샘플 프로젝트 설명 파일입니다.  프로젝트에는 단일 특성 및 빌더가 구성되어 있고 몇 가지 프로젝트 참조사항이 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>WinterProject</name>
    <comment>This is a cool project.</comment>
    <projects>
        <project>org.seasons.sdt</project>
        <project>CoolStuff</project>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.seasons.sdt.seasonBuilder</name>
            <arguments>
                <dictionary>
                    <key>climate</key>
                    <value>cold</value>
                </dictionary>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.seasons.sdt.seasonNature</nature>
    </natures>
</projectDescription>

API 정보: 프로젝트 설명 파일의 컨텐츠는 org.eclipse.core.resources.IProjectDescription 인터페이스로 맵핑됩니다. 프로젝트 설명 파일은 IProject.setDescription() 메소드로 겹쳐쓸 수 있습니다.