查看: 1377|回复: 0

[Java学习] 详解IDEA中MAVEN项目打JAR包的简单方法

发表于 2018-1-5 08:00:00

Idea中为一般的非Web项目打Jar包是有自己的方法的,网上一搜就能查到很多。

但是如果是为Maven项目打Jar包,其实是很简单的,因为maven本身就有打Jar包的命令。

最简单的方法

首先是在maven项目的pom.xml中添加打包的插件,这里有很多种方式的。最最简单的就是只使用maven-compiler-plugin、maven-jar-plugin插件,并且指定程序入口。相关代码如下:

pom.xml文件为:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <groupId>cn.mymaven</groupId>
  7. <artifactId>test</artifactId>
  8. <version>1.0-SNAPSHOT</version>
  9. <build>
  10. <plugins>
  11. <plugin>
  12. <groupId>org.apache.maven.plugins</groupId>
  13. <artifactId>maven-compiler-plugin</artifactId>
  14. <configuration>
  15. <source>1.8</source>
  16. <target>1.8</target>
  17. </configuration>
  18. </plugin>
  19. <plugin>
  20. <groupId>org.apache.maven.plugins</groupId>
  21. <artifactId>maven-jar-plugin</artifactId>
  22. <configuration>
  23. <archive>
  24. <manifest>
  25. <addClasspath>true</addClasspath>
  26. <useUniqueVersions>false</useUniqueVersions>
  27. <classpathPrefix>lib/</classpathPrefix>
  28. <mainClass>cn.mymaven.test.TestMain</mainClass>
  29. </manifest>
  30. </archive>
  31. </configuration>
  32. </plugin>
  33. </plugins>
  34. </build>
  35. </project>
复制代码

入口类TestMain.java为:

  1. package cn.mymaven.test;
  2. public class TestMain {
  3. public static void main(String[] args){
  4. System.out.println("Hello World");
  5. }
  6. }
复制代码

然后开始打包,在Idea中把Maven项目的命令都做成了可视化的操作界面,只需要如下操作就好: 

在Maven Project目录下,点击package  

 

此时在target目录下,就会生成这个项目的Jar包

使用java -jar 命令运行这个Jar包,会输出“Hello World”

需要注意的地方

需要说明的是,如果一个maven项目中有多个子目录,每一个子目录中的pom.xml对应一个项目,它的作用范围只有这一个子目录下的。比如扫描配置文件,如果要让一个子目录下的pom.xml扫描另一个子目录下的配置文件,那是做不到的。在打jar包的时候,只运行当前的pom.xml文件。

当然也有其他的打包方法,比如使用spring-boot-maven-plugin插件在打Jar包时,会引入依赖包。

它的pom.xml文件配置为:

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>org.springframework.boot</groupId>
  5. <artifactId>spring-boot-maven-plugin</artifactId>
  6. </plugin>
  7. <plugin>
  8. <groupId>org.apache.maven.plugins</groupId>
  9. <artifactId>maven-compiler-plugin</artifactId>
  10. <configuration>
  11. <source>1.8</source>
  12. <target>1.8</target>
  13. </configuration>
  14. </plugin>
  15. <plugin>
  16. <groupId>org.apache.maven.plugins</groupId>
  17. <artifactId>maven-jar-plugin</artifactId>
  18. <configuration>
  19. <archive>
  20. <manifest>
  21. <addClasspath>true</addClasspath>
  22. <useUniqueVersions>false</useUniqueVersions>
  23. <classpathPrefix>lib/</classpathPrefix>
  24. <mainClass>cn.mymaven.test.TestMain</mainClass>
  25. </manifest>
  26. <manifestEntries>
  27. <version>${project.version}</version>
  28. </manifestEntries>
  29. </archive>
  30. </configuration>
  31. </plugin>
  32. </plugins>
  33. </build>
复制代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持程序员之家。



回复

使用道具 举报