6

我有一个使用 Maven 构建的 java 程序,我需要启用该assert关键字。理想情况下,我想在 Maven 构建命令中启用断言。

4

3 回答 3

10

Maven 编译并构建 java 代码。当您实际运行 java 代码时会出现断言错误,因此使用 maven 您不能这样做

除非您使用 maven 插件来启动 java 代码,否则您必须提供 -ea给 jvm

exec:java

传递-ea命令行参数

万无一失

如果您打算执行测试,则配置sure-fire插件以传递-ea给jvm

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.16</version>
    <configuration>
        <enableAssertions>true</enableAssertions>
    </configuration>
  </plugin>
于 2013-11-13T23:39:14.063 回答
4

唯一对我有用的是

export MAVEN_OPTS="-ea"
于 2016-10-06T13:48:15.080 回答
0

您不能在启用断言的情况下构建应用程序,因为它们在运行时启用取决于您是否将-ea参数传递给 JVM。这是运行程序时启用断言的 maven exec 插件的配置:

       <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.5.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>exec</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <executable>java</executable>
                <arguments>
                    <argument>-ea</argument>
                    <argument>-classpath</argument> <classpath />
                    <argument>io.mc.validationdemo.App</argument>
                </arguments>
            </configuration>
        </plugin>
于 2017-02-05T10:20:15.740 回答