如何根据Eclipse中的变量设置Ant属性?

gMa*_*ale 12 eclipse ant variables build-process properties

我有一个共同的问题,可能有无数的方法来解决它.我正在寻找这种典型场景的优雅,简单的解决方案:

我在Eclipse中有一个带有Ant构建文件(build.xml)的项目,构建文件使用属性文件(build.properties).在该属性文件中,我想设置一个指向eclipse项目根目录的属性,例如:

project.root = /path/to/eclipse/workspace/projectName
Run Code Online (Sandbox Code Playgroud)

或者最好:

project.root = ${path.to.eclipse.workspace}/projectName
Run Code Online (Sandbox Code Playgroud)

我如何以这样的方式做到这一点:

  1. 适用于具有到项目根目录的不同路径的不同计算机(即在团队环境中)
  2. 允许ant build.xml文件在eclipse中执行
  3. 允许ant build.xml文件在eclipse之外执行(即从命令行)
  4. 允许build.properties文件存在于项目根目录以外的目录中

Kon*_*hik 8

请参阅窗口 - >首选项 - > Ant - >运行时 - >属性,以定义应从Eclipse调用的任何ant脚本可用的自定义ant属性.从命令行调用脚本时,只需手动设置相同的属性.

您的build.properties文件可以存在于您喜欢的任何位置.使用常规Ant工具将其导入脚本.


gMa*_*ale 7

我认为我正在寻找的是将以下内容添加到build.properties文件中:

project.root = ${basedir}
Run Code Online (Sandbox Code Playgroud)

或者,只要需要project.root,我就可以使用basedir属性.

我碰巧在查看ivy.properties源代码,我看到了正在使用的basedir属性.我刚刚测试并验证了这个属性可以在eclipse和命令行中的不同机器上运行,也可以从不同的目录调用ant,例如:

ant -f /path/to/eclipse/workspace/projectName/build.xml
Run Code Online (Sandbox Code Playgroud)

当我得到一分钟时,我将验证在不同位置(例如src/main/resources/config/ivy/ivysettings.xml内部)导入属性文件时这也有效.