1

由于多个开发人员在同一个 Tomcat 应用程序上工作,我想告诉应用程序根据当前用户和修订控制客户端/视图安装到不同的路径。

因此,如果 Bob 正在构建,应用程序应该安装在 Bob 的测试环境中,可能是 /bob1 或类似的东西。Bob 可能有几个与他一起工作的修订控制客户端/视图/工作空间,因此他可以拥有 /bob1、/bob2、/bob3 等。

安装位置在 build.properties 文件中指定。有没有办法避免检查该文件并为每个特定用户和修订控制视图更改它?

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

4

4 回答 4

5

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

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

我先读取本地属性文件,然后读取默认值。用户不会编辑默认的(然后不小心签入),他们只需在 local.properties 中定义他们想要覆盖的属性。

于 2008-11-17T02:50:37.233 回答
2

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

ant -Dinstall.location=/bob1 install

有关更多信息,请参阅运行 Ant

于 2008-11-09T04:58:20.540 回答
1

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

  1. 在构建文件中定义环境病毒:

    <property environment="env" />
    
  2. 引用 env 变量并使用它来指示路径。这是在我的构建文件中的类路径定义中完成的。它说从 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>
    
于 2011-08-17T18:16:30.153 回答
0

在命令行中使用 -D 选项定义属性很好,但如果经常有很多属性会变得乏味。为了抵制将 ant 调用包装在 bash 脚本中的冲动,通常的做法是导入属性文件。

在您放置的主构建文件中:

<property file="default.properties" />

然后您有一个名为 default.properties.sample 的文件,其中包含示例配置。这正在被检查到版本控制中。开发人员检查 default.properties.sample,将其复制到 default.properties 并根据需要进行编辑。

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

于 2008-11-09T10:05:50.327 回答