大家好,又见面了,我是你们的朋友全栈君。
IDEA Maven 打jar包 (包涵依赖jar)
最新修改 以前写的打包方式可能看起来有些繁琐,这里给出进一步简洁的解决方案简单粗暴
写在前面:
这两天一直在整(gu)理(dao)IDEA 用Maven打jar包,网上的教程是各式各样,但是都不能满足我的需求(或者 还没有找个正确的),因此 综合网上的内容 自己整理了一下(以下内容是在mac系统下 win 可能有一些地方不一样)。
软件环境:
IDEA:2017.1.5
Maven:3.3.9
打jar包:
- IDEA 自带的打包工具使用
- 打无依赖jar包
- 如果工程目录中有以下文件夹 删掉
- 点击工程上方【File】菜单选择【Project Structure】
- 点击【 】 选择【JAR】,【From modules with dependencies】点击【ok】
- 点击【1】选择你要打包的Module,点击【2】选择你的主类(也就是你的程序的入口)然后点击【ok】
- 点击【ok】
- 【1】是要打的jar包的名字,【2】是jar包的输出路径,【3】是程序所需要的jar依赖,【4】是程序主类的名称。因为这里是打没有依赖的jar包,所以将【3】里面不需要的jar包删掉就行。最后点击【ok】
- 然后就会生成一个META-INF的文件夹,里面就是一些配置属性
- 打包涵依赖jar包 对以上的方式中的步骤6中 不做任何修改,然后执行步骤7
- 打无依赖jar包
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>
- 方案一:
<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>
- 方案二:
<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