前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IDEA+Maven 打jar包[通俗易懂]

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

作者头像
全栈程序员站长
发布2022-09-02 09:59:46
2.6K0
发布2022-09-02 09:59:46
举报
文章被收录于专栏:全栈程序员必看

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月3,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • IDEA+Maven 打jar包 (包涵依赖jar)
    • 注:
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档