构建配置
构建机制是由构建配置驱动的。单独的插件、段或功能部件的构建配置可在相应元素的 build.properties 文件中找到。
当创建了插件项目时,PDE 项目创建向导就会生成 build.properties 文件。该文件包含有关如何将源文件夹编译成 JAR 的信息。可以在清单编辑器的“运行时”页面中间接更新此信息。还可以使用适当的编辑器来直接修改它。
PDE 为具有表单和源代码视图的 build.properties 提供了简单的编辑器。文件本身遵循 Java 属性格式。您需要提供一些键及其相应的值。多个值之间使用逗号作为定界符来将它们隔开。
公共属性
- bin.includes - 列示将要包括在所构建的插件的二进制版本中的文件;
- bin.excludes - 列示要从二进制构建中排除的文件;
- qualifier - 元素版本号以 .qualifier 结尾时,它指示必须用来替换“.qualifier”的值。该属性的值可以是 context、<value> 或 none。
上下文(Context)将根据系统日期生成日期,或在自动构建时使用 CVS 标记。值(Value)是实际值。None 将除去“.qualifier”。如果省略了此属性,则将使用 context。
- custom=true - 指示构建脚本是用手工生成的,与自动生成相反。因此不会建议任何其它值。
特定于插件的属性
- source.<library> - 列示将被编译的源文件夹(例如
source.xyz.jar=src/, src-ant/)。如果在 plugin.xml 或 manifest.mf 中指定了库,则值应该与其匹配;
- output.<library> - 列示接收编译结果的输出文件夹;
- source.<library> - 列示不应该被编译器复制到库中的文件;
- extra.<library> - 用来执行自动构建的额外类路径。类路径可以是相对路径,也可以是引用开发环境的插件和段的平台 URL(例如,../someplugin/xyz.jar 和 platform:/plugins/org.apache.ant/ant.jar)。建议使用平台 url 而不是使用相对路径;
- manifest.<library> - 指示将用作库的清单的文件。该文件必须位于一个用作 JAR 的输入的源文件夹中。
- src.includes - 列示要包括在源代码构建中的文件;
- src.excludes - 列示要从源代码构建中排除的文件;
- jars.extra.classpath - (不推荐) 效果与 extra.<library> 相同,但这些条目将应用于所有库;
- jars.compile.order - 定义编译 jar 时应该采用的顺序(适用于具有多个库的情况)。
为以“includes”或“excludes”结尾的这些键定义的值是以 Ant“模式”表示的。标准格式将产生预期的结果。例如,“*.jar”指示顶级目录中的所有 jar 文件。缺省情况下,模式并不深。例如,如果想要描述所有 Java 文件,则应使用模式“**/*.java”。模式“**”与任何数目的目录级别相匹配。类似地,要描述整个子树,可使用“xyz/”。
特定于功能部件的属性
- root - 列示必须包括在产品的根目录中的文件和文件夹。不同的受支持的值包括:
- <folderName> - 指向要复制的文件夹的相对路径;
- file:<fileName> - 指向要复制的文件的相对路径;
- absolute:<folderName> - 指向要复制的文件夹的绝对路径;
- absolute:file:<fileName> - 指向要复制的文件的绝对路径;
- root.<config> - 列示针对指定配置构建产品时必须包括在产品根目录中的文件和文件夹。config 是由用点分隔的三个配置分段组成的;
- root.permissions.<permissionValue> - 列示要将其许可权属性改为使用给定值的文件和文件夹。对文件夹的引用必须以“/”结尾;
- root.permissions.<config>.<permissionValue> - 列示要将其许可权属性改为使用特定配置的给定值的文件和文件夹。对文件夹的引用必须以“/”结尾;
- root.link - 成对列示需要用符号链接的文件和文件夹(用逗号分隔)。第一个条目指示源(UNIX 术语中为目标),而第二个条目指示链接名;
- root.link.<config> - 用逗号分隔的文件和文件夹对的列表,这些文件和文件夹对是针对特定配置需要用符号链接的。第一个条目指示源(UNIX 术语中为目标),而第二个条目指示链接名;
- generate.feature@<featureId> - 指示源功能部件 featureId 将成为指定为此属性的值的功能部件的源功能部件。在第一个逗号之后列示的值指示要从存储库中访存的元素。
- generate.plugin@<pluginId> - 指示源代码插件 pluginId 将成为指定为此属性的值的插件的源代码插件。
以下示例抽取自 org.eclipse.platform 功能部件的 build.properties。
bin.includes=epl-v10.html,eclipse_update_120.jpg,feature.xml,feature.properties,license.html
root=rootfiles,file:../../plugins/org.eclipse.platform/startup.jar,configuration/
root.permissions.755=eclipse
root.linux.motif.x86=../../plugins/platform-launcher/bin/linux/motif,linux.motif
root.linux.motif.x86.link=libXm.so.2.1,libXm.so.2,libXm.so.2.1,libXm.so
root.linux.motif.x86.permissions.755=*.so*