I posted the question on the wildfly dev list (http://lists.jboss.org/pipermail/wildfly-dev/2017-January/005653.html) but I am posting here too since it would be good to get it fixed in XStream because the workaround is unpleasant (I have to add the --add-opens jdk 9 flag to MAVEN_OPTS to force the war plugin and XStream to allow the access to the private field which affects all maven modules in a build).
The following is a copy from my wildfly dev post of the error:
[WARNING] Error injecting: org.apache.maven.plugins.war.WarMojo
com.google.inject.ProvisionException: Unable to provision, see the following errors:
1) Error injecting constructor, java.lang.ExceptionInInitializerError
at org.apache.maven.plugins.war.WarMojo.<init>(Unknown Source)
while locating org.apache.maven.plugins.war.WarMojo
...
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field private final java.util.Comparator java.util.TreeMap.comparator accessible: module java.base does not "opens java.util" to unnamed m
odule @669f2128
at java.base/jdk.internal.reflect.Reflection.throwInaccessibleObjectException(Reflection.java:427)
at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:201)
at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:171)
at java.base/java.lang.reflect.Field.setAccessible(Field.java:165)
at com.thoughtworks.xstream.core.util.Fields.locate(Fields.java:40)
at com.thoughtworks.xstream.converters.collections.TreeMapConverter.<clinit>(TreeMapConverter.java:50)