surefire插件输出:“警告:发生了非法的反射访问操作”

时间:2019-11-14 02:00:28

标签: maven jacoco maven-surefire-plugin jacoco-maven-plugin sonar-maven-plugin

我在maven版本中配置了以下插件:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>sonar-maven-plugin</artifactId>
            <version>2.6</version>
        </plugin>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.4</version>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <!-- plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>3.0.0-M3</version>
        </plugin -->

一切似乎都正常,运行测试,Sonar占用代码覆盖率。

如果我取消对surefire插件的注释,Sonar不会占用代码覆盖范围,并且会得到一个包含以下内容的.dumpstream文件。是什么原因造成的,我该如何解决?

  

创建于2019-11-13T19:35:46.185警告:发生了非法的反射访问操作

     

创建于2019-11-13T19:35:46.193警告:com.sun.xml.bind.v2.runtime.reflect.opt.Injector非法反射访问

     

(文件:/ C:/Users/tgunter/.m2/repository/com/sun/xml/bind/jaxb-impl/2.3.0/jaxb-impl-2.3.0.jar)   方法   java.lang.ClassLoader.defineClass(java.lang.String,byte [],int,int)

     

创建于2019-11-13T19:35:46.205警告:请考虑将其报告给

的维护者      

com.sun.xml.bind.v2.runtime.reflect.opt.Injector

     

创建于2019-11-13T19:35:46.212警告:使用--illegal-access = warn启用有关进一步非法反射访问操作的警告

     

创建于2019-11-13T19:35:46.222警告:在将来的版本中,所有非法访问操作都将被拒绝

1 个答案:

答案 0 :(得分:1)

您可以尝试将以下内容添加到Maven Surefire插件中:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>3.0.0-M3</version>
    <configuration>
        <argLine>
            --illegal-access=permit
        </argLine>
    </configuration>
</plugin>

如果您使用的是JDK 11。