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可参考:




0 0
原创粉丝点击