2008-11-07 46 views
1

由于多个开发人员在同一个Tomcat应用程序上工作,我想根据当前用户和版本控制客户机/视图来告诉应用程序安装到不同的路径。建筑与蚂蚁:动态构建选项?

因此,如果Bob正在构建,应用程序应安装在Bob的测试环境中,可能是/ bob1或类似的东西。 Bob可能有多个版本控制客户端/视图/工作区,因此他可以拥有/ bob1,/ bob2,/ bob3等。

安装位置在build.properties文件中指定。有没有办法避免检查该文件,并针对每个特定用户和版本控制视图进行更改?

“ant install”可以带参数或配置为考虑安装目标的环境变量吗?

+0

你能ellaborate?你想让几个开发人员部署到相同的Tomcat实例?如果是这样,我会考虑http://tomcat.apache.org/tomcat-6.0-doc/config/context.html – alex 2008-11-07 21:46:06

回答

5

我通常在默认属性使用变化答案已经给出:

<property file="local.properties" /> 
<property file="default.properties" /> 

我读的局部性质第一个文件,默认一秒。用户不编辑默认值(然后意外检查),他们只是在local.properties中定义他们想要覆盖的属性。

+0

+1:我使用一个非常类似的结构,但通常添加“$ {user.home}/.ant/$ {ant.project} -local.properties“,以便我(或其他开发人员)可以跟踪多组这些定制,而无需去查找它们。 – 2008-11-17 03:27:12

2

您可以从命令行覆盖ant属性。

ant -Dinstall.location=/bob1 install 

查看Running Ant了解更多信息。

0

在命令行中使用-D选项定义属性是很好的,但如果它们中有很多是频繁的,那么它可能会很乏味。为了抵制在bash脚本中包装ant调用的冲动,通常会导入属性文件。

在主构建文件你就把:

<property file="default.properties" /> 

然后,你必须有一个样本配置default.properties.sample命名的文件。这正在检查到版本控制。开发人员检查default.properties.sample,将其复制到default.properties并根据其需要进行编辑。

您应该为default.samples设置一个忽略默认标志,以防止它被意外检查(svn:ignore with subversion)。

1

这个答案很晚,但我只是想把它放在一个可能需要它的人身上。答案与你问题的第二部分有关。 “可以”ant安装“带参数或被配置为考虑安装目标的环境变量?”

  1. 定义环境virable请在生成文件:

    <property environment="env" /> 
    
  2. 参考的环境变量,并用它来表示的路径。这是在我的构建文件中的我的类路径定义中完成的。它说,从weblogic lib目录中包含一个名为api.jar的jar。只要有为其定义的相关环境可取,您就可以访问任何其他路径。例如,如果您为它们发送了环境变量,则可以访问程序文件,文档,Java Home等。这里WebLogic安装目录中定义的环境变量是BEA_HOME

    <fileset dir="${env.BEA_HOME}/wlserver_10.0/server/lib"> 
        <include name="api.jar" /> 
    </fileset>