我正在尝试创建一个spring mvc应用程序.这是我的pom.xml
4.0.0 com.acme test springmvc jar 1.0.0-BUILD-SNAPSHOT 3.1.1.RELEASE 1.6.10 1.6.6 spring-milestone http://repo.spring.io/libs-milestone false spring-milestone http://repo.spring.io/libs-milestone false org.springframework spring-context ${org.springframework-version} commons-logging commons-logging org.springframework spring-webmvc ${org.springframework-version} org.aspectj aspectjrt ${org.aspectj-version} org.slf4j slf4j-api ${org.slf4j-version} org.slf4j jcl-over-slf4j ${org.slf4j-version} runtime org.slf4j slf4j-log4j12 ${org.slf4j-version} runtime log4j log4j 1.2.15 javax.mail javax.jms jms com.sun.jdmk jmxtools com.sun.jmx jmxri runtime javax.inject javax.inject 1 javax.servlet servlet-api 2.5 provided javax.servlet.jsp jsp-api 2.1 provided javax.servlet jstl 1.2 junit junit 4.7 test org.springframework.boot spring-boot-starter-web 0.5.0.M6 org.springframework.boot spring-boot-starter-tomcat org.springframework.boot spring-boot-starter-jetty 0.5.0.M6 org.springframework.boot spring-boot-starter-actuator 0.5.0.M6 maven-eclipse-plugin 2.9 org.springframework.ide.eclipse.core.springnature org.springframework.ide.eclipse.core.springbuilder true true org.apache.maven.plugins maven-compiler-plugin 2.5.1 1.6 -Xlint:all true true org.apache.maven.plugins maven-jar-plugin 2.4 com.ilppa.cocktail.Application org.codehaus.mojo exec-maven-plugin 1.2.1 org.test.int1.Main org.springframework.boot spring-boot-maven-plugin
当我运行时mvn clean install
,会生成.jar,但是当我启动它时java -jar target/test-1.0.0-BUILD-SNAPSHOT.jar
我有一个错误
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication at com.acme.test.Application.main(Application.java:12) Caused by: java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 1 more
我不明白,我在日食中没有错误,我认为.jar是maven的依赖
如果你想留在弹簧靴空间,只需将pom包装设置为jar
<packaging>jar</packaging>
并将spring-boot-maven-plugin添加到pom.xml文件中的构建属性中:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
然后一个简单的mvn package命令将创建一个完整的可执行jar文件.
有关更多详细信息,请参阅非常好的弹簧参考文档(也可以使用gradle样式) 弹簧参考文档
你的jar不包含它在运行时期间寻找的spring-boot等依赖项.您可以构建一个包含此问题中概述的所有依赖项的统一jar .
我是由腐败的Maven存储库引起的.
我删除了所有内容C:\Users\<me>\.m2\repository
.
然后做了Eclipse Maven Update,它第一次工作.
所以它只是spring-boot.jar
被破坏了.