为Ant脚本设置环境变量

8
有没有人知道如何在IntelliJ IDEA/RubyMine内部为Ant脚本设置额外的环境变量?使用环境变量的Ant脚本部分如下所示:
  <property environment="env"/>
  <fail unless="env.IDEA_HOME" message="IDEA_HOME must be set."/>

我尝试过的方法:

  • 在启动 IntelliJ 时传递一个环境变量
  • 设置 -> 路径变量
  • Ant 构建 -> 属性
  • Ant 构建 -> 执行 -> Ant 命令行

选项1应该可以。 (对我有效) - Jayan
Ant构建/属性/属性选项卡/指定变量的完整名称,因此在您的情况下名称应为env.IDEA_HOME。 - dvd
我也遇到的一般问题是如何导出项目或IDE特定的想法设置(在IDE界面中设置)到一个ANT调用中,以便该值可以从IDE或项目设置在调用时继承。即:使用表示IDE设置的宏,可将idea“项目结构”属性分配给ant可访问的属性,例如:IDEA_HOME, JAVA_HOME = “Project SDK”,“Project Root”(.idea所在处),“Java语言级别”,“Build Output Dir”,“Project Name”等。 - peterk
我也需要这个 - 一种在调用Ant脚本时以环境目录无关的方式知道调用“.idea”项目根目录(而不是模块)的位置的方法,以便该值适应特定的源树位置。 - peterk
2个回答

2
你可以将变量设置为额外的命令行参数。这里是一张截图。 enter image description here 然后是我的输出:
echoproperties
#Ant properties
#Sun Mar 04 04:48:30 EST 2012
\==-buildfile
ant.core.lib=E\:\\IntelliJ IDEA 114.145\\lib\\ant\\lib\\ant.jar
ant.file=E\:\\IdeaProjects\\psiviewer\\build.xml
ant.file.psiviewer=E\:\\IdeaProjects\\psiviewer\\build.xml
ant.file.type=file
ant.file.type.psiviewer=file
ant.home=E\:\\IntelliJ IDEA 114.145\\lib\\ant
ant.java.version=1.6
ant.library.dir=E\:\\IntelliJ IDEA 114.145\\lib\\ant\\lib
ant.project.default-target=all
ant.project.name=psiviewer
ant.version=Apache Ant(TM) version 1.8.2 compiled on December 20 2010
awt.toolkit=sun.awt.windows.WToolkit
basedir=E\:\\IdeaProjects\\psiviewer
dir.idea=e\:/idea11
file.encoding=windows-1252
file.encoding.pkg=sun.io

你可以看到,dir.idea 被设置为我们传递给 ant 的值。


有没有办法通过编程方式,在IDEA中获取位置,使用宏等?这是为了当前调用脚本的IDEA实例,这样无论何时不同的用户运行构建或在另一台机器上运行构建,或者您安装了旧版本的IDEA,都不必更改设置。 - peterk
这将设置相对于模块的属性 - 不是从调用模块构建的根项目配置继承的。这就是期望的 - 一个模块可能存在于多个项目中,知道哪个项目调用了构建是必要的 - 在我的情况下,知道正在构建模块的项目的根".idea"是必须的。 - peterk

1
问题:如何在IntelliJ中运行ant构建,并让ant构建属性使用IntelliJ路径变量的值。
解决方案:
  1. 在IntelliJ中添加路径变量QC1_SHELL_DEPLOY IntelliJ设置 -> 路径变量
  2. 在您的Ant Build窗口(视图 -> 工具窗口 -> Ant Build)中, 右键单击您的ant脚本(假设您已经添加了一个),点击属性。 为ant脚本qc_deploy_dir创建一个属性。 带任意值的ant脚本属性

  3. 打开您的项目.idea/ant.xml中的ant.xml,将定义qc_deploy_dir的行更改为使用IntelliJ路径变量$QC1_SHELL_DEPLOY property change for ant.xml

  4. 返回到ant脚本的属性窗口,现在qc_deploy_dir正在获取QC1_SHELL_DEPLOY的值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接