尝试找到一个 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>