尝试找到一个 jar 文件来满足扩展要求,并将 jar 文件的位置放入属性中。该任务允许您添加多个解析器,这些解析器能够为特定扩展找到库。每个解析器将按照指定的顺序尝试,直到找到库或没有解析器剩余。如果没有任何解析器剩余并且 failOnError 为 true,则会抛出 BuildException。
请注意,此任务使用“可选包”规范中定义的扩展。有关可选包的更多信息,请参阅 Java Standard Edition 包文档捆绑包中的文档可选包版本控制,位于文件 guide/extensions/versioning.html 中,或在线 扩展和扩展集文档 以获取更多详细信息。
| 属性 | 描述 | 必需 |
|---|---|---|
| property | 要设置为库位置的属性名称。 | 是 |
| failOnError | 如果无法找到库,则 true表示应导致构建异常。 |
否;默认为 true |
| checkExtension | 如果嵌套解析器返回的库应该被检查以查看它们是否提供扩展,则为 true。 |
否;默认为 true |
扩展 要解析的扩展。必须存在
location 嵌套元素允许您在相对于项目目录的位置查找库。
| 属性 | 描述 | 必需 |
|---|---|---|
| location | 库的路径名。 | 是 |
url 解析器允许您从 URL 下载库到本地文件。
| 属性 | 描述 | 必需 |
|---|---|---|
| url | 要下载的 URL。 | 是 |
| destfile | 要将 URL 下载到的文件。 | 两者中只有一个 |
| destdir | 放置下载文件的目录。 |
ant 解析器允许您运行 Apache Ant 构建文件来生成库。
| 属性 | 描述 | 必需 |
|---|---|---|
| antfile | 构建文件。 | 是 |
| destfile | ant 构建创建的文件。 | 是 |
| target | 要在构建文件中运行的目标。 | 否 |
将扩展解析为文件。如果文件不存在或文件未实现扩展,则抛出异常。
<extension id="dve.ext"
extensionName="org.realityforge.dve"
specificationVersion="1.2"
specificationVendor="Peter Donald"/>
<jarlib-resolve property="dve.library">
<extension refid="dve.ext"/>
<location location="/opt/jars/dve.jar"/>
</jarlib-resolve>
将扩展解析为 URL。如果 URL 不存在或无法写入 destfile 或文件未实现扩展,则抛出异常。
<extension id="dve.ext"
extensionName="org.realityforge.dve"
specificationVersion="1.2"
specificationVendor="Peter Donald"/>
<jarlib-resolve property="dve.library">
<extension refid="dve.ext"/>
<url url="https://www.example.com/jars/dve.jar" destfile="lib/dve.jar"/>
</jarlib-resolve>
将扩展解析为 Ant 构建生成的的文件。如果文件未生成或 Ant 文件丢失或构建失败,则抛出异常。(注意:不检查库是否实现扩展。)
<extension id="dve.ext"
extensionName="org.realityforge.dve"
specificationVersion="1.2"
specificationVendor="Peter Donald"/>
<jarlib-resolve property="dve.library" checkExtension="false">
<extension refid="dve.ext"/>
<ant antfile="../dve/build.xml" target="main" destfile="lib/dve.jar"/>
</jarlib-resolve>
通过多种方法解析扩展。首先检查本地文件以查看它是否实现扩展。如果它没有,则尝试从并行目录中的源代码构建它。如果失败,则最后尝试从网站下载它。如果所有步骤都失败,则抛出构建异常。
<extension id="dve.ext"
extensionName="org.realityforge.dve"
specificationVersion="1.2"
specificationVendor="Peter Donald"/>
<jarlib-resolve property="dve.library">
<extension refid="dve.ext"/>
<location location="/opt/jars/dve.jar"/>
<ant antfile="../dve/build.xml" target="main" destfile="lib/dve.jar"/>
<url url="https://example.com/jars/dve.jar" destfile="lib/dve.jar"/>
</jarlib-resolve>