By default, Java disables assertions. (The test I'm using here is assert false;
as the first line in main()
.)
I'd like to have them enabled while running my program with gradle run
. What's the trick for doing this?
To configure assertion options one must use either the -ea or -da command line flags to enable or disable assertions with the command line tool: “java”. For example, “java -ea Assert” where Assert is a java class file. You may also specify a specific class or package as follows.
Just remember that assertions aren't enabled by default, so never assume they will be executed when used in the code.
You could enable assertions for all packages, then disable them for some of the packages. Or otherwise- disable for all packages, then enable only for some of them.
There is a specific flag enableAssertions
that you can set to enable assertions. Such flags are often more readable than working with the jvm args directly. It comes down to personal preferences I think.
Instead of working with applicationDefaultJvmArgs
you can add the following to your build.gradle
file:
run {
enableAssertions = true
}
This configures the run
task to enable assertions.
The run
task is of type JavaExec
, have a look at the documentation if you are interested in other parameters that you can set (e.g., workingDir
or heapMaxSize
).
tasks.withType(JavaExec) {
enableAssertions = true
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With