2

tomee-maven-plugin を介してアサーションを無効にする方法を見つけようとしました。デフォルトでは、起動した TomEE JVM のコンソール出力に次の情報が表示されます。

 Command line argument: -ea

したがって、アサーションを無効にするために、私は良い推測をし-daて、引数として試しました(以下を参照)

<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>
                ....

朗報: アサーションは実際には無効になっていますが、コンソール出力がまだ出力されているため、ここで引数の優先順位について疑問に思っています。

[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. この文脈で優先順位はどのように定義されますか?
  2. この構成は堅牢で、この設定で-daは常に優先さ-eaれますか?

参考:今のところ tomee-7.0.2 を使っています。

4

1 に答える 1

1

提供された値 (通常はシステム プロパティ) をオーバーライドしないようにするため、ea は常にクラスパスとメイン (ブートストラップ) の直前になります。ここでの問題は da != ea であるため、同じであることが検出されませんでした。

于 2016-12-26T09:40:15.947 に答える