Maven(m2e)集成之二
来源:互联网 发布:树状结构图软件 编辑:程序博客网 时间:2024/06/08 05:23
继前几天开始使用Maven一步步对Maven好感倍增,它一下子解决了下载Jar包的困扰。
想想一个case,别人给你一个jar供你集成使用并告诉你依赖一些jar包,但是依赖的jar包的版本信息并没有提供(或你不确定),这时就会皱眉头,到底应该下载哪个版本呢?你只能试,但就算测试成功也不太代表jar包版本就肯定对。现在有了Maven就很大程度解决了这个问题,尤其是结合http://mvnrepository.com/使用。
除了解决了Jar包依赖和版本问题,Maven同时还提供了打包功能,下面就简单纪录一下Maven(我用的是eclipse的Maven插件--m2e)怎么打Jar包。
1.
不用额外配置,直接项目右键->Run As->Maven Build...弹出的对话框中,在Goals一栏后输入package->运行即可。
2.
运行成功后会在项目的target目录下生成你的Jar包。
注:a. 这里打出的jar包不会把依赖jar打进去;
b. 如果打包过程中出错,可以尝试右键->Maven->Update Project...
3.
这样打出的Jar已足够作为引用包来使用,但是还]不能通过下面命令直接运行
java -classpath . -jar your_jar_name.jar
因为,这个Jar中的Manifest文件没有申明Main-Class和lib。所以一个任务就是要配置manifest文件。
解决这个问题就是在POM.xml中加入下面两个plugin,注意标红的几行。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <executions> <execution> <id>default-jar</id> <phase>package</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> <span style="color:#FF0000;"><mainClass>com.yquants.turorial.jse.log.Log4jTest</mainClass> </span> <span style="color:#FF0000;"><classpathPrefix>lib/</classpathPrefix></span> </manifest> <manifestEntries> <mode>development</mode> <url>abc</url> </manifestEntries> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.6</version> <executions> <execution> <id>copy</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> </execution> </executions> <configuration> <span style="color:#FF0000;"><outputDirectory>target/lib</outputDirectory></span> </configuration> </plugin>
4.
再重新打一次jar包吧,还是用package作为goal。 这次运行之后应该能在target目录下看到你的jar包和一个lib子目录,里面有项目项目用到的其他的包。
5.
现在测试一下jar是否可直接java运行。
--成功
附录:
1. 在配置中参考了下面这篇文章:
http://blog.csdn.net/smile_juan/article/details/8293229
2. 完整的pom.xml可参考:
- Maven(m2e)集成之二
- Maven Integration (M2E)
- eclipse Maven (m2e)
- maven 红色插件 m2e
- 持续集成之路二—Maven问题总结
- m2e: Bringing Maven to Eclipse
- eclipse安装Maven插件M2E
- Eclipse maven插件 m2e安装
- Maven(二)-eclipse中集成maven
- m2e
- M2E
- m2e
- 持续集成之Maven实战
- [JSF2.0学习笔记之二]eclipse3.7.1+jbosstools3.3环境搭建(4.0.0.Final的richfaces-showcase成功运行,同时纪念m2e/m2e-wtp安装史)
- 解决m2e插件maven-dependency-plugin问题
- Maven Integration (m2e) +eclipse3.7.2 安装
- M2E插件maven-dependency-plugin问题
- M2E插件maven-dependency-plugin问题
- 妙算(manifold)上cuda、opencv以及qt的配置
- Android中View的绘制过程 onMeasure方法简述 附有自定义View例子
- 【慕课笔记】第七章 方法 第6节 JAVA中方法的重载
- wait和waitpid的区别
- 在cdlinux下装无线网卡驱动的解决方法
- Maven(m2e)集成之二
- OpenStack设计与实现(四)消息总线(AMQP)
- NCRE项目经验总结——善良与胸怀
- Javascript模块化编程(三):require.js的用法
- c++企业级接口框架(一)
- 关于block简单说明
- 开/关编辑模式
- 信息提取工具资料列表
- Android事件构成