首页 > 编程语言 > 详细

mavne 构建jar

时间:2015-07-15 02:25:05      阅读:222      评论:0      收藏:0      [点我收藏+]

spring-boot 构建的应用用传统的方式打包会报

???java.lang.NoClassDefFoundError: org/springframework/boot/CommandLineRunner

错误,应该加入spring-boot-maven-plugin .

如下:

? ? <build>

? ? ? ? <plugins>

? ? ? ? ? ? <plugin>

? ? ? ? ? ? ? ? <groupId>org.springframework.boot</groupId>

? ? ? ? ? ? ? ? <artifactId>spring-boot-maven-plugin</artifactId>

? ? ? ? ? ? </plugin>

? ? ? ? ? ? <plugin>

? ? ? ? ? ? ? ? <groupId>org.apache.maven.plugins</groupId>

? ? ? ? ? ? ? ? <artifactId>maven-jar-plugin</artifactId>

? ? ? ? ? ? ? ? <configuration>

? ? ? ? ? ? ? ? ? ? <archive>

? ? ? ? ? ? ? ? ? ? ? ? <manifest>

? ? ? ? ? ? ? ? ? ? ? ? ? ? <mainClass>com.ams.Application</mainClass>

? ? ? ? ? ? ? ? ? ? ? ? ? ? <addClasspath>true</addClasspath>

? ? ? ? ? ? ? ? ? ? ? ? ? ? <classpathPrefix>lib/</classpathPrefix>

? ? ? ? ? ? ? ? ? ? ? ? </manifest>

? ? ? ? ? ? ? ? ? ? </archive>

? ? ? ? ? ? ? ? ? ? <classesDirectory>

? ? ? ? ? ? ? ? ? ? </classesDirectory>

? ? ? ? ? ? ? ? </configuration>

? ? ? ? ? ? </plugin>

? ? ? ? </plugins>

? ? </build>

在pom里面添加后 直接 mvn clean package 就搞定.

?

java -jar u.jar

?

?

如果不是spring-boot 这个也可以用

一、依赖项的处理

?

java application运行时需要查找依赖的第三方jar,如果查找classpath失败,就会报错,可以先用

?

mvn dependency:copy-dependencies -DoutputDirectory=target/lib

?

命令,把依赖的jar包全部导出到target/lib这个目录下

?

?

?

二、利用maven-jar-plugin修改META-INF\MANIFEST.MF 清单文件

?

java application的最终jar里,用解压工具打开后,可以看到META-INF目录下,有一个重要的清单文件 MANIFEST.MF,这里面可以指定 Main-Class及classpath,结构如下:

?

复制代码

1 Manifest-Version: 1.0

2 Built-By: jimmy

3 Build-Jdk: 1.7.0_09

4 Class-Path: lib/DataEntity-1.0.jar ...

5 Created-By: Apache Maven 3.2.3

6 Main-Class: ctas.importer.reader.app.Program

7 Archiver-Version: Plexus Archiver

复制代码

其中第4行指定了classpath,也就是所依赖的jar包在什么地方,第6行表示main函数的入口类,默认情况下mvn clean package生成的jar包里,清单文件上并没有这2行,需要在pom.xml中添加插件

?

按 Ctrl+C 复制代码

?

按 Ctrl+C 复制代码

第7行指定Main-Class,第9行指定classpath的相对路径,这样mvn package后,清单文件里就会自动添加Main-Class和Class-Path这二项

?

ok了,部署时把jar包和lib目录,都上传到服务器上 ,然后测试一下,顺利的话 java -jar ?xxx.jar就可以了

mavne 构建jar

原文:http://luyuwww.iteye.com/blog/2226884

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!