IDEA+Maven 打jar包[通俗易懂]

2022-09-02 09:59:46 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

IDEA Maven 打jar包 (包涵依赖jar)

最新修改 以前写的打包方式可能看起来有些繁琐,这里给出进一步简洁的解决方案简单粗暴

写在前面:

​ 这两天一直在整(gu)理(dao)IDEA 用Maven打jar包,网上的教程是各式各样,但是都不能满足我的需求(或者 还没有找个正确的),因此 综合网上的内容 自己整理了一下(以下内容是在mac系统下 win 可能有一些地方不一样)。

软件环境:

​ IDEA:2017.1.5

​ Maven:3.3.9

打jar包:

  • IDEA 自带的打包工具使用
    • 打无依赖jar包
      1. 如果工程目录中有以下文件夹 删掉
    1. 点击工程上方【File】菜单选择【Project Structure】
    1. 点击【 】 选择【JAR】,【From modules with dependencies】点击【ok】
    1. 点击【1】选择你要打包的Module,点击【2】选择你的主类(也就是你的程序的入口)然后点击【ok】
    1. 点击【ok】
    1. 【1】是要打的jar包的名字,【2】是jar包的输出路径,【3】是程序所需要的jar依赖,【4】是程序主类的名称。因为这里是打没有依赖的jar包,所以将【3】里面不需要的jar包删掉就行。最后点击【ok】
    1. 然后就会生成一个META-INF的文件夹,里面就是一些配置属性
    • 打包涵依赖jar包 对以上的方式中的步骤6中 不做任何修改,然后执行步骤7

Maven 打包

如果要打包scala代码需要添加插件: 方案一:

代码语言:javascript复制
 <plugin>
     <groupId>net.alchim31.maven</groupId>
     <artifactId>scala-maven-plugin</artifactId>
     <version>3.4.0</version>
     <executions>
         <execution>
             <goals>
                 <goal>compile</goal>
                 <goal>testCompile</goal>
             </goals>
         </execution>
     </executions>
 </plugin>

方案二:

代码语言:javascript复制
	<plugin>
		<groupId>org.scala-tools</groupId>
		<artifactId>maven-scala-plugin</artifactId>
 		<version>2.15.2</version>
 		<executions>
         	<execution>
            	 <goals>
                 	<goal>compile</goal>
                 	<goal>testCompile</goal>
            	 </goals>
         	</execution>
     	</executions>
	</plugin>

推荐方案一,方案二中的插件最新更新日期是2011年

简单粗暴 将下面的任意一种方案放到pom文件中,并修改成自己项目中的MainClass即可

代码语言:javascript复制
</plugins>
    </build>
     方案一 or 方案二
     <build>
<plugins>
  • 方案一:
代码语言:javascript复制
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.0.0</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                        <mainClass>com.test.MainClass</mainClass>   <!--带有包路径的MainClass -->
                    </transformer>
                </transformers>
            </configuration>
        </execution>
    </executions>
</plugin>
  • 方案二:
代码语言:javascript复制
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <archive>
            <manifest>
                <mainClass>com.test.MainClass</mainClass>   <!--带有包路径的MainClass -->
            </manifest>
        </archive>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>

    <executions>
        <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
        </execution>
    </executions>
</plugin>

注:

本文属于作者原创,如需转载,请注明。

内部如果引用的文字,连接,图片等资源存在侵犯原作者的情况,请联系本人,立即删除。 ​

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139237.html原文链接:https://javaforall.cn

0 人点赞