首页 文章

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

提问于
浏览
12

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

我在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 回答

  • 3

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

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

  • 1

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

    project.root = ${basedir}
    

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

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

    ant -f /path/to/eclipse/workspace/projectName/build.xml
    

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

  • 7

    对于我的项目archieve .

    ProjectName <dir>
     |_ ant <dir>
         |_ ant.xml
    

    您的情况可以只是简单地更改ant xml文件, <project default="main" basedir="../"/>

    然后我可以使用变量of来获取项目根目录

    例如 <echo message= "Project Root: ${basedir}" />

  • 3

    如果你需要的不仅仅是琐碎的基础东西=
    Ant4Eclipse - 从ant中访问eclipse配置的一堆ant任务 -
    可以帮到你 . 只需按原样使用或grep代码并选择相关部分..

  • 8

    您可以从eclipse为ANT Build设置eclipse相对属性

    转到ANT Builder属性,在参数部分中,您可以使用-D设置属性,如下所示

    -Dworkspace="${workspace_loc}" -Dproject_dir="${project_loc}"
    

    (这里workspace_loc和project_loc是eclipse变量) . 可以在ANT构建脚本中访问这些属性,例如常规属性,例如:

    <echo message="${workspace}" />
    <echo message="${project_dir}" />
    

    reference screenshot

相关问题