2017-04-24 5 views
0

Probleme beim Ausführen eines JAR, das über 'mvn-Paket' erstellt wurde. Versuche verschiedene Lösungen ohne Erfolg.Hauptklasse konnte nicht gefunden oder geladen werden, wenn Spring Boot jar ausgeführt wird

pom.xml

<groupId>org.springframework</groupId> 
    <artifactId>rest-service</artifactId> 
    <version>0.1.0</version> 
    <packaging>jar</packaging> 

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

... 
    <properties> 
     <java.version>1.8</java.version> 
     <start-class>ves.sfdc.Application</start-class> 
    </properties> 


    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
      </plugin> 
      <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-shade-plugin</artifactId> 
     <version>3.0.0</version> 
     <executions> 
      <execution> 
      <phase>package</phase> 
      <goals> 
       <goal>shade</goal> 
      </goals> 
      <configuration> 

      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
     </plugins> 
    </build> 

projectroot \ src \ main \ java \ ves \ SFDC \ application.java

@SpringBootApplication 
@Configuration 
@ComponentScan 
@EnableAsync 
@EnableScheduling 
@EnableAutoConfiguration 

public class Application{ 

    @Autowired 
    JdbcTemplate jdbcTemplate; 
    @Autowired 
    AccountService accountService; 
    @Autowired 
    static 
    SfdcUtil sfdcUtil= new SfdcUtil(); 
    @Autowired 
    NamedParameterJdbcTemplate jdbcTemplate2; 





    public static void main(String[] args) throws SecurityException, IOException { 



     SpringApplication.run(Application.class, args); 
    } 




} 

Projekt arbeitet in Eclipse in Ordnung, und wenn Sie mvn Feder-boot : run

Frage mich, ob ich etwas offensichtliches hier vermisse?

+0

Warum benutzen Sie das maven-shade-plugin? Außerdem sollten Sie ' ves.sfdc.Application' entfernen. Spring Boot und sein Maven Plugin kümmern sich darum. – dunni

+0

nicht sicher. hat es von einem Führer geliehen, als es haha ​​war. Ich hatte Fehler mvn Verpackung Entfernen der obwohl vorher? Es konnte nicht das Haupt finden. –

+1

Entfernen Sie auch das Maven-Schatten-Plugin. Es ist nicht erforderlich für Spring Boot – dunni

Antwort

1

Das Problem in diesem Fall ist mit Maven. Die Abhängigkeiten, die Sie heruntergeladen haben, haben nicht die erforderliche Version. Einige Abhängigkeiten arbeiten in großen Mengen miteinander und manchmal passen sie nur zu bestimmten Versionen anderer JAR-Dateien.

Solution:- It will take some time but clear .m2 and rebuild maven to download all dependencies again. 
or 
you are having two version of same dependencies. 
So check all maven jars and remove jars having common names. 
1

mit Frühlings-Stiefel Sie die Maven-Schatten-Plugin nicht brauchen. Spring Boot kümmert sich um die notwendige Verpackung.

Wenn Sie mehrere Klassen mit Hauptverfahren haben, können Sie die Feder-boot-Maven-Plugin mit dem richtigen konfigurieren:

<plugin> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-maven-plugin</artifactId> 
    <configuration> 
    <mainClass>ves.sfdc.Application</mainClass> 
    </configuration> 
</plugin> 

Sie können eine Liste der möglichen Konfigurationen in der Dokumentation des Maven finden plugin: http://docs.spring.io/spring-boot/docs/1.5.3.RELEASE/maven-plugin/repackage-mojo.html

Verwandte Themen