codecamp

IntelliJ IDEA构建工具:Ant

Ant

IntelliJ IDEA 通过捆绑插件实现 Ant 功能,通过清除 IntelliJ IDEA 设置(Ctrl+Alt+S)的“插件(Plugins)”页面上的 Ant 支持复选框,可以完全禁用该插件。

Ant 是 Apache Ant Project 的一个灵活的、独立于平台的构建工具。IntelliJ IDEA 与 Ant 集成以提供一个全面的构建过程,包括编译、文档和源代码打包,提交版本控制等等。

IntelliJ IDEA 附带了 Ant 集成,您无需执行任何其他操作即可安装它。但是,也可以使用其他 Ant 安装。

IntelliJ IDEA 中的 Ant 支持强加了某些先决条件,并包含以下功能:

  • Ant
    • 专用工具窗口
    • Ant 构建文件
    • Ant 构建目标
    • 编码协助
    • 类似路径的结构
  • 创建 Ant 构建文件
  • 生成 Ant 构建文件
  • 将生成文件添加到项目
  • 使用构建文件属性控制 Ant 脚本的行为
  • 运行构建
  • 使用 Ant 属性文件

专用工具窗口

Ant Build 工具窗口允许将 Ant 构建脚本添加到 IntelliJ IDEA 项目,控制构建行为并执行 Ant 构建目标。

Ant构建文件

Ant 与 XML 构建文件一起工作。通常,构建文件的名称是 build.xml。构建文件描述了构建项目所需的步骤或构建目标。构建文件的根元素是 <project>。IntelliJ IDEA 可以使用现有的构建文件,从头创建新的构建文件或自动生成它们。

IntelliJ IDEA 知道特定的 Ant 语法。但是,您必须让 IntelliJ IDEA 知道某个 XML 文件实际上是一个 Ant 构建文件。要被识别为构建文件并启用所有高级编辑功能,Ant 构建文件应至少满足以下一项要求:

  • 该文件应该正确添加到项目中。
  • <project> 根元素应该有 default 属性。

否则,这些文件被视为具有基本编辑支持的常规 XML 文件。一旦构建文件被添加到项目中,它就可以用来运行构建并修改其属性。

Ant构建目标

一个构建目标是使用一个唯一的名称标识,并且定义应该执行完成某项任务,例如,创建一个 JAR 文件,或生成 API 文档的过程。<project> 元素的 default 属性中指定的目标被视为默认目标,当没有指定其他目标时会执行该目标。该目标被称为主要目标,并在 Ant Build 工具窗口中以粗体字标记。

编码协助

在 IntelliJ IDEA 中编辑 Ant 构建文件时,您可以享受以下高级编辑功能:

  • 语法高亮显示。
  • 代码完成。特别是,为 File 类型的属性提供了代码完成。
  • 导航到声明 Ctrl+B。
  • 使用结构视图。
  • 重命名重构。
  • 代码折叠。
  • 重新格式化。
  • 验证。
  • 查看参数信息 Ctrl+P。
  • 查看快速信息 Ctrl+Q。特别是,如果 classpath 被定义为类似于路径的结构,则 fileset 或者 dirset 指令的 View Quick Info 命令将显示磁盘上的实际文件和目录,并将这些指令解析到该目录。

类似路径的结构

IntelliJ IDEA 支持在任务定义中使用类似路径的结构。如果一个类路径被定义为类似于路径的结构,在 fileset 和 dirset 指令中的路径将解析成磁盘上的实际文件和目录。执行任务所需的所有 JAR 应放置在包含具有任务定义的 JAR 的相同位置。

使用AspectJ编译器(ajc)
Ant构建文件的创建与生成
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

IntelliJ IDEA的一般准则

什么是IntelliJ IDEA项目

使用IntelliJ IDEA的意图行为

IntelliJ IDEA使用运行/调试配置

特定于VCS的程序

IntelliJ IDEA语言和特定框架指南

IntelliJ IDEA的数据库和SQL功能

IntelliJ IDEA使用之JavaServer Faces(JSF)

IntelliJ IDEA:分析PHP应用程序的性能

IntelliJ IDEA:调试PHP应用程序

IntelliJ IDEA:适用于PHP的Google App Engine

IntelliJ IDEA更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }