2017-04-24 120 views
0

運行通過'mvn package'創建的jar時出現問題。一直嘗試各種解決方案,沒有成功。運行彈簧引導罐時找不到或加載主類

的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 \主\ 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); 
    } 




} 

項目工作正常在Eclipse中,當你MVN春天啓動:運行

不知道我是否在這裏丟失了一些明顯的東西?

+0

你爲什麼使用maven-shade-plugin?另外,你應該刪除' ves.sfdc.Application'。 Spring Boot及其Maven插件負責照顧它。 – dunni

+0

不確定。當哈哈回來的時候,他從導遊那裏借用了這本書。我有錯誤mvn包裝刪除雖然之前?它找不到主體。 –

+1

也刪除maven-shade-plugin。 Spring Boot – dunni

回答

1

在這種情況下的問題是與maven。 您下載的依賴項沒有所需的版本。 一些依賴關係可以相互工作,有時他們只能匹配特定版本的其他jar。

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

使用Spring引導你不需要Maven的遮陽簾插件。 Spring Boot將負責必要的包裝。

如果您有多個教學班,主要方法,你可以配置彈簧引導Maven的插件使用了正確的:

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

您可以找到行家的文檔中的可能的配置列表插件:http://docs.spring.io/spring-boot/docs/1.5.3.RELEASE/maven-plugin/repackage-mojo.html