2016-12-24 29 views
2

我试图找出如何通过tomee-maven-plugin禁用断言。 默认情况下,推出TomEE JVM的控制台输出告诉我:如何禁用tomee-mavin-plugin中的断言 - “args”的优先级是什么?

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 precendence这里控制台输出仍然打印:

[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 

,你可以SE首先打印-da,然后-ea尚未在运行时断言被取消。

我的问题是:

  1. 如何在这种背景下定义precende?
  2. 此配置是否健壮,因此在此设置中-da始终优于-ea

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

回答

1

因为我们试图不覆盖提供的值(通常是系统属性),所以ea将始终在classpath和main(Bootstrap)之前。这里的问题是da!= ea,所以我们没有发现它是一样的。