2016-11-07 187 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> 

我運行命令: 「MVN全新安裝-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