2017-12-06 2 views
0

스프링 부트 통합 테스트 프로젝트가 있습니다. JDK 9으로 이동하려고합니다. 치어의 일부 변경 후 나는 구축 할 수있어 (테스트를 생략)와 자바 (9)에 실행 프로젝트하지만 통합 테스트를 수행 할 때, 나는 예외가 얻을 :테스트 수행 중에 Maven 빌드가 java.lang.ClassNotFoundException을 throw합니다

MVN 새로 설치 :

[ERROR] Please refer to pathToProject\target\surefire-reports for the individual test results. 
[ERROR] Please refer to dump files (if any exist) [date]-jvmRun[N].dump, [date].dumpstream and [date]-jvmRun[N].dumpstream. 
[ERROR] There was an error in the forked process 
[ERROR] java.lang.ClassNotFoundException: org.apache.maven.surefire.junit4.JUnit4Provider 
[ERROR] org.apache.maven.surefire.booter.SurefireBooterForkException: There was an error in the forked process 
[ERROR] java.lang.ClassNotFoundException: org.apache.maven.surefire.junit4.JUnit4Provider 
[ERROR]   at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:673) 
[ERROR]   at org.apache.maven.plugin.surefire.booterclient.ForkStarter.fork(ForkStarter.java:535) 
[ERROR]   at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:280) 
[ERROR]   at org.apache.maven.plugin.surefire.booterclient.ForkStarter.run(ForkStarter.java:245) 
[ERROR]   at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeProvider(AbstractSurefireMojo.java:1124) 
[ERROR]   at org.apache.maven.plugin.surefire.AbstractSurefireMojo.executeAfterPreconditionsChecked(AbstractSurefireMojo.java: 
[ERROR]   at org.apache.maven.plugin.surefire.AbstractSurefireMojo.execute(AbstractSurefireMojo.java:832) 
[ERROR]   at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) 
[ERROR]   at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) 
[ERROR]   at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154) 
[ERROR]   at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146) 
[ERROR]   at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117) 
[ERROR]   at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81) 
[ERROR]   at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java 
[ERROR]   at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 
[ERROR]   at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309) 
[ERROR]   at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194) 
[ERROR]   at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107) 
[ERROR]   at org.apache.maven.cli.MavenCli.execute(MavenCli.java:955) 
[ERROR]   at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:290) 
[ERROR]   at org.apache.maven.cli.MavenCli.main(MavenCli.java:194) 
[ERROR]   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
[ERROR]   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
[ERROR]   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
[ERROR]   at java.base/java.lang.reflect.Method.invoke(Method.java:564) 
[ERROR]   at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 
[ERROR]   at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 
[ERROR]   at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 
[ERROR]   at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 

내 pom.xml 파일 :

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <artifactId>myProject</artifactId> 
    <version>0.1.4</version> 
    <packaging>jar</packaging> 
    <groupId>com.myProject</groupId> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.9.RELEASE</version> 
    </parent> 

    <properties> 
     <java.version>1.9</java.version> 

     <!-- Dependency versions --> 
     <logback.version>1.1.7</logback.version> 
     <lombok.version>1.16.18</lombok.version> 

     <!-- Plugin versions--> 
     <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version> 
     <maven-surefire-plugin.version>2.20.1</maven-surefire-plugin.version> 
     <maven-failsafe-plugin.version>2.20.1</maven-failsafe-plugin.version> 
     <docker-maven-plugin.version>1.0.0</docker-maven-plugin.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency>  
     <dependency> 
      <groupId>ch.qos.logback</groupId> 
      <artifactId>logback-classic</artifactId> 
      <version>${logback.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.projectlombok</groupId> 
      <artifactId>lombok</artifactId> 
      <version>${lombok.version}</version> 
      <scope>provided</scope> 
     </dependency>  
     <dependency> 
      <groupId>javax.xml.bind</groupId> 
      <artifactId>jaxb-api</artifactId> 
      <version>2.3.0</version> 
     </dependency> 

     <!-- tests --> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 

    </dependencies> 


    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>${maven-compiler-plugin.version}</version> 
       <configuration> 
        <source>${java.version}</source> 
        <target>${java.version}</target> 
        <jdkToolchain> 
         <version>9</version> 
        </jdkToolchain> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-failsafe-plugin</artifactId> 
       <version>${maven-failsafe-plugin.version}</version> 
       <executions> 
        <execution> 
         <goals> 
          <goal>integration-test</goal> 
          <goal>verify</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <version>${maven-surefire-plugin.version}</version> 
       <configuration> 
        <argLine>--add-modules java.se.ee</argLine> 
        <argLine>--add-modules java.xml.bind</argLine> 
        <argLine>--add-modules java.xml.ws.annotation</argLine> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jar-plugin</artifactId> 
       <version>3.0.2</version> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

메이븐 버전 : 3.5.2

모든 통합 테스트 가 동일한 구성을 가지고 :

@RunWith(SpringRunner.class) 
@SpringBootTest 
@TestPropertySource(locations="classpath:application.properties") 
public class SomeTest { 

답변

0

문제는 받는다는 - 확실한 - 플러그인 버전 2.20.1했다. JDK 8에서도 작동하지 않습니다. 2.18.1으로 버전을 줄인 후 정상적으로 작동하기 시작했습니다.

관련 문제