我有一个共同的问题,可能有无数的方法来解决它 . 我正在寻找这种典型场景的优雅,简单的解决方案:
我在Eclipse中有一个带有Ant构建文件(build.xml)的项目,构建文件使用属性文件(build.properties) . 在该属性文件中,我想设置一个指向eclipse项目根目录的属性,例如:
project.root = /path/to/eclipse/workspace/projectName
或者最好:
project.root = ${path.to.eclipse.workspace}/projectName
我如何以这样的方式做到这一点:
-
在具有到项目根目录的不同路径的不同计算机上工作(即在团队环境中)
-
允许在eclipse中执行ant build.xml文件
-
允许ant build.xml文件在eclipse之外执行(即从命令行执行)
-
允许build.properties文件存在于项目根目录以外的目录中
5 回答
请参阅窗口 - >首选项 - > Ant - >运行时 - >属性,以定义应从Eclipse调用的任何ant脚本可用的自定义ant属性 . 从命令行调用脚本时,只需手动设置相同的属性 .
您的build.properties文件可以存在于您喜欢的任何位置 . 使用常规Ant工具将其导入脚本 .
我认为我正在寻找的是将以下内容添加到build.properties文件中:
或者,只要需要project.root,我就可以使用basedir属性 .
我碰巧看着source code for ivy.properties,我看到了使用的basedir属性 . 我刚刚测试并验证了这个属性可以在eclipse和命令行中的不同机器上运行,也可以从不同的目录调用ant,例如:
当我得到一分钟时,我将验证在不同位置(例如src / main / resources / config / ivy / ivysettings.xml内部)导入属性文件时这也有效 .
对于我的项目archieve .
您的情况可以只是简单地更改ant xml文件,
<project default="main" basedir="../"/>
然后我可以使用变量of来获取项目根目录
例如
<echo message= "Project Root: ${basedir}" />
如果你需要的不仅仅是琐碎的基础东西=
Ant4Eclipse - 从ant中访问eclipse配置的一堆ant任务 -
可以帮到你 . 只需按原样使用或grep代码并选择相关部分..
您可以从eclipse为ANT Build设置eclipse相对属性
转到ANT Builder属性,在参数部分中,您可以使用-D设置属性,如下所示
(这里workspace_loc和project_loc是eclipse变量) . 可以在ANT构建脚本中访问这些属性,例如常规属性,例如: