当前位置: 首页 > 知识库问答 >
问题:

蚂蚁属性覆盖多个目标

奚昌胤
2023-03-14

各位,

在Ant(Jenkins)中构建我们的Android应用程序时,我们遇到了一个属性范围问题。这打破了我们的emma单元测试覆盖率。

我们使用全局构建。xml文件,包含以下行:

    <target name="clean">
        <ant antfile="build.xml" dir="MyProject" target="clean"/>
        <ant antfile="build.xml" dir="MyTestProject" target="clean"/>
    </target>
    <target name="test">
        <ant antfile="build.xml" dir="MyTestProject" target="debug"/>
        <ant antfile="build.xml" dir="MyTestProject" target="installt"/>
        <ant antfile="build.xml" dir="MyTestProject" target="test"/>
   </target>
   <target name="emma">
     <ant antfile="build.xml" dir="MyTestProject" target="emma"/>
   </target>

如您所见,它在单个项目中启动目标。我们使用干净的emma test构建。

在构建过程中,我打印emma的值。已启用,由emma目标设置为true。然而,当Ant达到调试目标时,emma。已启用的不再设置。这导致我们的测试在没有启用emma覆盖的情况下运行。根据Ant Property任务文档,属性应保持其价值:

默认情况下,当前项目的所有属性都将在新项目中可用。

不过,他们显然没有。我已经做了一段时间了,希望你们能帮我。谢谢!

共有1个答案

澹台逸明
2023-03-14

在尝试了KBB的建议后,我发现我无法包含构建。来自子项目的xml,因为这不会更改工作目录。这导致了各种各样的问题,我需要构建。要运行的子项目本身的xml。

最后,我想到了这个build.xml:

<target name="clean">
    <ant antfile="build.xml" dir="${env.label}-${env.omgeving}" target="clean"/>
    <ant antfile="build.xml" dir="MijnUnbrandedTest" target="clean"/>
</target>
<target name="test">
    <ant antfile="build.xml" dir="MijnUnbrandedTest">
        <target name="debug"></target>
        <target name="installd"></target>
        <target name="test"></target>
    </ant>
</target>
<target name="emmatest"> 
   <ant antfile="build.xml" dir="MijnUnbrandedTest">
      <target name="emma"></target>
      <target name="debug"></target>
      <target name="installd"></target>
      <target name="test"></target>
   </ant>
</target>

与使用单个目标属性不同,ant任务允许使用多个目标元素,每个元素都将在相同的Ant任务中运行,因此范围。从Ant任务留档:

可以使用嵌套元素指定多个目标,而不是使用target属性。这些将被执行,就好像Ant是用一个单独的目标调用的一样,该目标的依赖关系是按照指定的顺序指定的目标。

 类似资料:
  • 我有几个POJO,这将有一个货币数额。我的想法是创建一个通用对象(由货币和值组成),然后每当我想在我的POJOs中表示一个货币金额时,就会使用它: 由于将在多个POJO中使用,我无法用注释和属性,因为在所有情况下,列名并不总是相同的。有没有办法注释属性(如上例中的)以提供和属性的列名,以便jOOQ在映射/取消映射POJO时理解它们,类似于Hibernate解释请问?

  • 问题内容: 在定义顺序构建步骤时,我使用元素的属性。我最近看到了一个ant文件,其中的构建顺序是由目标内部的元素定义的。为了显示 : 与 两种方法之间是否有真正的区别?是其中之一更可取吗? 问题答案: 与这两种方法的主要区别在于目标是 始终 执行,而在目标只有在包含目标是执行。 一个澄清的例子: 在这里,将始终执行,而只有在定义时才会执行。 在此,仅当is即定义时才执行。

  • 我在eclipse中有两个独立的项目:“project”和“pinclude” 项目包括p包括,所以没有以某种方式包括该项目的java文件在我的build.xml内,javac将始终返回错误。 我是怎么做到的。ant/javac中的类文件?我尝试过寻找解决方案,但到目前为止,我只找到了添加jar文件的方法。会创造一个装满所有“夹心”的罐子。类文件解决了我的问题?。 谢谢你的帮助。 注: 我为糟糕的

  • 我有一个包含application.yml的spring boot应用程序。 application.yml内容: 应用程序的内容-private.yml: 根据我的理解,integrations:ecom:api-url是从application-private.yml加载的,即使默认概要文件也有相同的属性。 如果两个配置文件处于活动状态,是否将按照指定配置文件的顺序加载和使用属性? 我的订单:

  • 我的测试属性将被放置在生产属性中的属性覆盖。当时,我两人都给起了名字,但它不起作用,所以我就像这篇文章中说的那样,改成了并使用profile。现在看起来就像贝娄(kotlin): 在中,我只将此属性设置为,而在中,则设置为。 这个测试失败了。完整示例可在github上找到 Thx提前。

  • 本文向大家介绍如何覆盖Spring Boot项目的默认属性?相关面试题,主要包含被问及如何覆盖Spring Boot项目的默认属性?时的应答技巧和注意事项,需要的朋友参考一下 这可以通过在application.properties文件中指定属性来完成。 例如,在Spring MVC应用程序中,您必须指定后缀和前缀。这可以通过在application.properties文件中输入下面提到的属性来