我试图找出如何通过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
但是在运行时断言已被禁用。
我的问题是:
-da
在此设置中始终优先于-ea
?仅供参考:目前使用tomee-7.0.2。
答案 0 :(得分:1)
ea将始终位于classpath和main(Bootstrap)之前,因为我们尝试不覆盖提供的值(通常用于系统属性)。这里的问题是da!= ea,所以我们没有发现它是一样的。