2016-11-07 5 views
0

Это первый раз, когда я пытаюсь построить проект с Maven, и он просто не работает ... Я понятия не имею, что делать.Невозможно построить проект с maven

Вот мои данные:

Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00) 
Maven home: C:\Program Files\Apache\maven 
Java version: 1.7.0_79, vendor: Oracle Corporation 
Java home: C:\Program Files\Java\jdk1.7.0_79\jre 
Default locale: en_GB, platform encoding: Cp1252 
OS name: "windows 8.1", version: "6.3", arch: "amd64", family: "windows" 

Вот pom.xml:

<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/maven-v4_0_0.xsd"> 

    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.stormpath.sample</groupId> 
    <artifactId>stormpath-spring-boot-spring-security-tutorial</artifactId> 
    <version>0.1.0</version> 
    <name>Spring Boot Spring Security Stormpath Tutorial</name> 
    <description>A simple Spring Boot Web MVC application with Spring Security and out-of-the-box login and self-service screens!</description> 

    <dependencies> 
     <dependency> 
      <groupId>com.stormpath.spring</groupId> 
      <artifactId>stormpath-default-spring-boot-starter</artifactId> 
      <version>1.1.1</version> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
       <version>1.4.1.RELEASE</version> 
       <executions> 
        <execution> 
         <goals> 
          <goal>repackage</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 

</project> 

я запускаю команду: "МВН чистой установки -e" и я в конечном итоге получаю эту ошибку :

Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.4.1.RELEASE:repackage (default) on project stormpath-spring-boot-spring-security-tutorial: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.4.1.RELEASE:repackage failed: Unable to find main class -> [Help 1] 
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.4.1.RELEASE:repackage (default) on project stormpath-spring-boot-spring-security-tutorial: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.4.1.RELEASE:repackage failed: Unable to find main class 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116) 
     at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80) 
     at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51) 
     at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) 
     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307) 
     at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193) 
     at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106) 
     at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863) 
     at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) 
     at org.apache.maven.cli.MavenCli.main(MavenCli.java:199) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:606) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) 
     at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) 
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.4.1.RELEASE:repackage failed: Unable to find main class 
     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:145) 
     at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207) 
     ... 20 more 
Caused by: java.lang.IllegalStateException: Unable to find main class 
     at org.springframework.boot.loader.tools.Repackager.buildManifest(Repackager.java:291) 
     at org.springframework.boot.loader.tools.Repackager.repackage(Repackager.java:207) 
     at org.springframework.boot.loader.tools.Repackager.repackage(Repackager.java:152) 
     at org.springframework.boot.maven.RepackageMojo.repackage(RepackageMojo.java:206) 
     at org.springframework.boot.maven.RepackageMojo.execute(RepackageMojo.java:193) 
     at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134) 
     ... 21 more 
+0

У вас есть основной класс в вашей заявке? –

ответ

2

Spring Boot может определять ваш основной класс, когда у вас его есть. Вероятно, у вас более одного, поэтому Spring Boot не может знать, какой из них использовать!

Поскольку вы не используете пружинные загрузки, как родительский проект, необходимо указать главный класс в spring-boot-maven-plugin:

<plugin> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-maven-plugin</artifactId> 
    <version>1.4.1.RELEASE</version> 
    <executions> 
     <execution> 
      <goals> 
       <goal>repackage</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <mainClass>com.package.MainClass</mainClass> 
    </configuration> 
</plugin> 

Если вы объявляли пружинный загрузочный стартер-родитель в качестве родительского проекта, вы мог бы просто делить start-class:

<start-class>com.package.MainClass</start-class> 
+1

Я думаю, что это не обязательно. Плагин spring boot maven автоматически сканирует метод 'main()', если основной класс не предоставляется через конфигурацию или через файл манифеста. Проверьте это [ссылка] (http://docs.spring.io/spring-boot/docs/current/reference/html/build-tool-plugins-maven-plugin.html). Я подозреваю, что у него нет основного класса. –

+0

Я обновил ответ (первая строка) на этом! – alexbt