此文件的名称、位置和内容都是工作空间 API 的一部分。这意味着保证不会以破坏文件的现有用户的方式更改它们。然而,保留了将附加元素和属性添加至标记的权利以便将来可能添加文件。由于此原因,读取描述文件内容的客户机应该允许未知的元素和属性。
修改、删除或替换项目描述文件的客户机自行承担这样做的风险。具有无效或丢失描述文件的项目通常将不可用。如果在工作空间启动时发现了具有无效描述文件的项目,则会关闭该项目并且将不能打开它,直到修复了项目描述文件为止。工作空间通常不会尝试自动修复丢失或无效的描述文件。一个例外情况是在工作空间保存和调用 IProject.setDescription 时将重新生成丢失的项目描述文件。
修改项目描述文件基本上与通过 IProject.setDescription 来更改项目描述具有相同的效果。一个例外情况是添加或除去项目性质将不会触发相应的性质配置或取消配置方法。另一个例外情况是会忽略对项目名所作的更改。
如果新项目是在包含现有项目描述文件的位置上创建的,则将认为该描述文件的内容是项目描述。一个例外情况是如果文件中的项目名与正在创建的项目的名称不匹配,则将忽略该项目名。如果磁盘上的描述文件无效,则项目创建将失败。
配置标记:
<!ELEMENT projectDescription (name, comment, projects, buildSpec, natures, linkedResources)>
<!ELEMENT name EMPTY>
<!ELEMENT comment 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() 来覆盖项目描述文件。