2017-11-02 9 views
0

인텔리 지 아이디어로 봄 부팅 응용 프로그램을 개발했습니다."META-INF/spring.factories에 자동 구성 클래스가 없습니다"

나는 다음과 같은 오류가 계속 단지 파일을 실행하려고 할 때 :

"에서 찾을 수 없습니다 자동 구성 클래스 META-INF/spring.factories"


최소 예 :

SpringInitializr (https://start.spring.io)을 사용하면 몇 초 안에 문제를 재현 할 수있는 미니 응용 프로그램을 만들 수 있습니다. 사용 된 SpringInitializr 태그는 "Web"및 "Vaadin"입니다.

jar 파일을 만들 때주의하십시오 (!!!) : intellij 아이디어에 버그가 있습니다 ... 매니페스트 파일을/$ PROJECT_DIR/src /로 변경하여 자동 채우기 경로를 제거하십시오. mgrandi의 답변보기 여기 :

Create an excutable jar in IntelliJ IDEA

java -jar minimalExample.jar 

는 다음과 같은 오류 메시지가 얻을 것이다 사용하여 응용 프로그램 실행 :

을 "META-INF/spring.factories에 자동 구성 클래스가 없습니다"

이 오류 메시지는 어떻게 제거 할 수 있습니까?

PS :

<?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> 

    <groupId>com.example</groupId> 
    <artifactId>minEx</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>minEx</name> 
    <description>Demo project for Spring Boot</description> 

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.8.RELEASE</version> 
     <relativePath/> <!-- lookup parent from repository --> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
     <java.version>1.8</java.version> 
     <vaadin.version>8.1.0</vaadin.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>com.vaadin</groupId> 
      <artifactId>vaadin-spring-boot-starter</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

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

    <dependencyManagement> 
     <dependencies> 
      <dependency> 
       <groupId>com.vaadin</groupId> 
       <artifactId>vaadin-bom</artifactId> 
       <version>${vaadin.version}</version> 
       <type>pom</type> 
       <scope>import</scope> 
      </dependency> 
     </dependencies> 
    </dependencyManagement> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build> 


</project> 

PPS : 여기

는 치어 파일의 여기에 제안 작동하지 않았다 :

SpringBoot - making jar files - No auto configuration classes found in META-INF/spring.factories

를 ********* *****************최신 정보******************************** *********

W

INFO] Building minEx 0.0.1-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[WARNING] The POM for ch.qos.logback:logback-classic:jar:1.1.11 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ minEx --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] Copying 1 resource 
[INFO] Copying 0 resource 
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ minEx --- 
[INFO] Nothing to compile - all classes are up to date 
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ minEx --- 
[INFO] Using 'UTF-8' encoding to copy filtered resources. 
[INFO] skip non existing resourceDirectory /Users/username/Desktop/minEx/src/test/resources 
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ minEx --- 
[INFO] Nothing to compile - all classes are up to date 
[INFO] 
[INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ minEx --- 
[INFO] Surefire report directory: /Users/username/Desktop/minEx/target/surefire-reports 

------------------------------------------------------- 
T E S T S 
------------------------------------------------------- 
Failed to instantiate SLF4J LoggerFactory 
Reported exception: 
java.lang.NoClassDefFoundError: ch/qos/logback/core/joran/spi/JoranException 
    at org.slf4j.LoggerFactory.bind(LoggerFactory.java:150) 
    at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124) 
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:357) 
    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155) 
    at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:132) 
    at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:273) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.<clinit>(SpringJUnit4ClassRunner.java:96) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104) 
    at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) 
    at org.junit.runner.Computer.getRunner(Computer.java:40) 
    at org.junit.runner.Computer$1.runnerForClass(Computer.java:31) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
    at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:101) 
    at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:87) 
    at org.junit.runners.Suite.<init>(Suite.java:81) 
    at org.junit.runner.Computer.getSuite(Computer.java:28) 
    at org.junit.runner.Request.classes(Request.java:75) 
    at org.junit.runner.Request.classes(Request.java:91) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.apache.maven.surefire.common.junit4.JUnit4Reflector.createRequest(JUnit4Reflector.java:63) 
    at org.apache.maven.surefire.common.junit4.JUnit4ProviderUtil.createSuiteDescription(JUnit4ProviderUtil.java:113) 
    at org.apache.maven.surefire.junit4.JUnit4Provider.createTestsDescription(JUnit4Provider.java:257) 
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124) 
    at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203) 
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155) 
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103) 
Caused by: java.lang.ClassNotFoundException: ch.qos.logback.core.joran.spi.JoranException 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 36 more 
Running com.example.minEx.MinExApplicationTests 
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.021 sec <<< FAILURE! - in com.example.minEx.MinExApplicationTests 
initializationError(com.example.minEx.MinExApplicationTests) Time elapsed: 0.018 sec <<< ERROR! 
java.lang.NoClassDefFoundError: Could not initialize class org.springframework.test.context.junit4.SpringRunner 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104) 
    at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26) 
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59) 
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33) 
    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283) 
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173) 
    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153) 
    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128) 
    at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203) 
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155) 
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103) 


Results : 

Tests in error: 
    MinExApplicationTests.initializationError » NoClassDefFound Could not initiali... 

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0 

[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 3.587 s 
[INFO] Finished at: 2017-11-02T20:34:41+01:00 
[INFO] Final Memory: 19M/178M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.18.1:test (default-test) on project minEx: There are test failures. 
[ERROR] 
[ERROR] Please refer to /Users/username/Desktop/minEx/target/surefire-reports for the individual test results. 
[ERROR] -> [Help 1] 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException 
+1

[Maven을 사용하여 jar를 빌드하는 방법] (https://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins-maven-plugin.html)을 고려 했습니까? – CrazyCoder

+0

의견을 보내 주셔서 감사합니다. 다른 종류의 오류 메시지가 표시되면 수정 한 게시물의 "업데이트"부분을 참조하십시오. –

+0

죄송합니다 ... 내가 잘못 읽었습니다 ("빌드"대신 "실행") ... "mvn 패키지"를 사용하여 jar 파일을 만들려고했습니다 ...이 경우 다른 오류가 발생합니다 (위의 업데이트 된 게시물 참조).) –

답변

1

내가 삭제 한 다음 .m2 폴더 안에있는 받는다는 저장소 폴더를 (다시 만들어 그것을 해결 : 암탉 명령

mvn package 

나는 다음과 같은 오류 메시지가납니다를 사용하여 응용 프로그램 구축을 위해 노력).

은 그 때 나는

mvn package 

를 실행하고 빌드 성공을있어!