运行spring boot jar时无法找到或加载主类

时间:2017-04-24 20:45:20

标签: java spring maven spring-boot

我在运行通过&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 \ 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);
    }        
}

这个项目在Eclipse中运行良好,当我执行 mvn spring-boot:run

我想知道我在这里错过了哪些东西?

3 个答案:

答案 0 :(得分:4)

使用Spring Boot你不需要maven-shade-plugin。 Spring Boot将负责必要的包装。

如果你有多个带有main方法的类,你可以使用正确的方法配置spring-boot-maven-plugin:

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

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

答案 1 :(得分:2)

这种情况下的问题是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.

答案 2 :(得分:0)

就我而言,这是不正确/不正确的依赖关系。 在 markers>问题中发现的内容突出显示 .pom无效的存档。

compile group: 'org.apache.httpcomponents', name: 'httpcomponents-client', version: '4.5.6', ext: 'pom'

将其更改为

    `compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.6'`