在Eclipse中用Maven打包jar包--完整版

将本地的jar导入到maven本地库中

<!--手动加入库中 -->
<!-- mvn install:install-file -DgroupId=org.apache.Hadoop -DartifactId=hadoop-common 
-Dversion=2.0.0-cdh4.6.0 -Dpackaging=jar -Dfile=libhadoop-common-2.0.0-cdh4.6.0.jar 
mvn install:install-file -DgroupId=org.apache.hadoop -DartifactId=hadoop-hdfs 
-Dversion=2.0.0-cdh4.6.0 -Dpackaging=jar -Dfile=libhadoop-hdfs-2.0.0-cdh4.6.0.jar -->

1. 首先搭好Eclipse和Jdk环境

2. 在Eclipse中安装Maven插件  

打开help-->Eclipse Marketplace-->Popular 前几个里面就有一个Maven Integration for Eclipse点击install

3. 新建Maven项目

Group Id是包名,Artifact Id 是项目名,点击finish就生成了项目。

pom.xml是其配置文件。main/Java是主要程序

建好项目后点击Maven install,

成功后,刷新target文件夹,已经不为空了,其中.jar文件正是生成的jar文件

是不是以为已经大功告成了,但是在控制台运行这个.jar文件,出现以下错误:

这是因为没有声明哪个是入口类。

4.修改jar中的MANIFEST.MF文件

把.jar文件解压后,出现了以下的文件

把MANIFEST.MF打开后,

是这样的:

[plain] view plain copy
 
  1. Manifest-Version: 1.0  
  2. Archiver-Version: Plexus Archiver  
  3. Created-By: Apache Maven  
  4. Built-By: ddlv  
  5. Build-Jdk: 1.6.0_37  

把它改成这样:

[plain] view plain copy
 
  1. Manifest-Version: 1.0  
  2. Class-Path: lib/commons-logging-1.1.1.jar lib/log4j-1.2.17.jar lib/sqljdbc4.jar  
  3. Main-Class: com.ctrip.bi.jdbc_tool.main.Start  
  4. Archiver-Version: Plexus Archiver  
  5. Created-By: Apache Maven  
  6. Built-By: ddlv  
  7. Build-Jdk: 1.6.0_37  



添加的Class-Path这行指的是这个项目里有引用外部jar包,要指明jar包的位置

添加的Main-Class这行指的是这个项目的入口类。

接下去的问题就是如何把这个修改后的.MF文件用来替换.jar中的.MF文件

在把修改后的粘帖到这里,恭喜你,就大功告成了。

希望对大家有帮助,还有关于替换.MF文件的办法,我觉得有点low,如果大家知道有别的更好办法,可以一起分享。

原文地址:https://www.cnblogs.com/telwanggs/p/7463852.html