2

我试图弄清楚如何通过 tomee-maven-plugin 禁用断言。默认情况下,启动的 TomEE JVM 的控制台输出会通知我:

 Command line argument: -ea

因此,为了禁用断言,我做了一个很好的猜测并尝试-da作为 args(见下文)

<plugin>
            <groupId>org.apache.tomee.maven</groupId>
            <artifactId>tomee-maven-plugin</artifactId>
            <version>${tomee.plugin.version}</version>
            <configuration>
                <tomeeVersion>${tomee.version}</tomeeVersion>
                <tomeeClassifier>plus</tomeeClassifier>
                <debug>false</debug>
                <tomeeHttpPort>8282</tomeeHttpPort>
                <debugPort>5005</debugPort>
                <args>-da</args>
                ....

好消息:断言实际上被禁用,但是,我想知道这里的 args 优先级,因为控制台输出仍然打印:

[main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -da
[main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Dtomee.force-reloadable=true
[main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -Dtomee.jsp-development=true
.... some more lines
[main] sun.reflect.DelegatingMethodAccessorImpl.invoke Command line argument: -ea

如您所见-da,首先打印,然后 -ea在运行时禁用断言。

我的问题是:

  1. 在这种情况下如何定义 precende?
  2. 此配置是否稳健,因此在此设置中-da始终具有优先权-ea

仅供参考:目前使用 tomee-7.0.2。

4

1 回答 1

1

ea 将始终位于类路径和主路径(引导程序)之前,因为我们尝试不覆盖提供的值(通常用于系统属性)。这里的问题是 da != ea 所以我们没有发现它是一样的。

于 2016-12-26T09:40:15.947 回答