idea怎么自定义打包命令

idea怎么自定义打包命令,第1张

现在IDEA是最火的java集成开发环境,经常会用到一些maven命令进行必要的 *** 作(例如打jar包),所以在这里做一些简单的总结

1.常用打包命令:

mvn clean package -Dmaven.test.skip=true 跳过单测打包

mvn clean install -Dmaven.test.skip=true 跳过单测打包,并把打好的包上传到本地仓库

mvn clean deploy -Dmaven.test.skip=true 跳雹配过单测打包,并把打好的包上传到远程仓库

登录后复制

2.常用命令列表:

mvn -v //查看版本

mvn archetype:create //创建 Maven 项目

mvn compile //编译源代码

mvn test-compile //编译测试代码

mvn test //运行应用程序中的单元测试

mvn site //生成项目相关信息的网站

mvn package //依据项目生成 jar 文件

mvn install //在本地 Repository 中安装 jar

mvn -Dmaven.test.skip=true //忽略测试文档编译

mvn clean //清除目标目录中的生成结果

mvn clean compile //将.java类编译为.class文件

mvn clean package //答肢进行打包

mvn clean test //执行单元测试

mvn clean deploy //部署到版本仓库

mvn clean install //使其他项目使用这个jar,会安装到maven本地仓库中

mvn archetype:generate //创建项目架构

mvn dependency:list //查看已解析依赖

mvn dependency:tree //看到依赖树

mvn dependency:analyze //查看依赖的工具

mvn help:system //从中央仓库下载文件至本地仓库

mvn help:active-profiles //查看当前激活的profiles

mvn help:all-profiles //查看所有profiles

mvn help:effective -pom //查看源举指完整的pom信息

登录后复制

3.注意

maven 命令要在IDEA的Terminal窗口执行

执行maven命令需要当前目录有pom依赖,可以用cd命令切换目录

一 Idea打包jar

因为本人用的开发环境是IntelliJ IDEA,开始的时候研究了一下利用这个开发工具进行打包

首先按F4或者点击IDEA右上角这地方

进入项目结构管理器

选择这里面的Artifacts。开始我完全不知道Artifacts是什么东西,后来查阅了点资料:Artifacts是maven中的一个概念,表示某个module要如何打包,例如war exploded、war、jar、ear等等这种打包形式;意思我理解的就是Artifacts就是告诉我们的程序因该如何打包这个项目。

之后新建一个Artifacts

这有两个选项选择第二个,从模块中引入,点击进去后会有一些设置,如下:

module是你需要打成jar包的项目

MainClass是运行的主函数,如果不需要运行则可以不选择

jarfilesfromlibraries是项目打包的方式,下面选项大致的含义:

1:extracttothetargetjar:把所有文件倒入进一个jar包里

2:copytothe。。。。:把项目的依赖包导出和项目一个目录,通过MANIFEST.MF文件来引用jar包。

这里如果你的项目需要打成一个可运行的jar包推荐第二种,反之第敏友一种。

设置完之后,就会新建一个xxx:jar,并进入进入xxx:jar的编辑页面

在我们需要进行一个输出目录布局的设置,我们可以看到,已经编译好的项目的jar文件(我的是eachend.jar)和其他导入的jar包混到一起的,很杂,我是点击桥巧槐outputlayout下最左边的文件夹图标新建了一个lib文件,把其他jar包拖拽进来(建议,也可以直接点OK完成)

但是我们这样做的话依赖的jar包的目录就会产生变化,这时候我们需要选中我们项目,在下方然后修改MANIFEST.MF中的Class Path

修改成OK

到了这一步后Artifacts是写好了,保存之后就可以用来生成jar文件

点击build Artifacts后选择你刚刚生成的artifacts

build后就会在out的目录下生成对应的jar文件

最后进入项目目录输入命令java -jar XXX.jar就可以跑起来了如下

二gradle打包jar

本以为项目打成jar包并且可以完美运行了后,这事就差不多完了,可是项目组长说:你这样打包是可以,但是如果其他人用Eclipes来开发的话,就不管用了。。。。。。哎,好不容易搞出来的一个方法被宽粗pass掉了,无奈之下就只有另换方法。

因为项目我是用的gradle构建的,第一时间想起了用gradle打包。

利用gradle进行打包其实非常非常简单,但是因为我平常只是简单用它来导包,以及构建项目,它的基本的一些东西不是很清楚,所以走了些弯路花了大半天的时间才搞出来,所以说有时候需要了解一下你所用的东西的一些基础和原理。

在build,gradle中首先需要加上

apply plugin: 'java'

apply plugin: 'idea'

来定义你自己项目使用的插件,apply plugin: 'idea'用于把项目构建成idea项目,apply plugin: 'java'用于添加Java插件,以及一些内置任务,打包jar就要用到这里的插件。

version = '1.0'

repositories {

mavenCentral()

}

这里用来声明版本号以及添加maven中心仓库地址

dependencies {

compile 。。。。。。。

}

这里来添加项目所需要的依赖包

jar {

String someString = ''

configurations.runtime.each {someString = someString + " lib//"+it.name} //遍历项目的所有依赖的jar包赋值给变量someString

manifest {

attributes 'Main-Class': 'com.each.dubboMainEnd'

attributes 'Class-Path': someString

}

}

打包的时候,这个地方很重要,用来设置jar文件的相关属性,这个地方把我坑了有点久,最后补了下gradle的基础知识,就搞出来了,这篇博客写gradle基础写的还可以,推荐给大家看看http://www.open-open.com/lib/view/open1447139848053.html

首先这定义了一个someString用来存放依赖包的信息,通过configurations.runtime拿到所有的运行时的依赖jar包,然后.each遍历他,通过it.name获取到每个的jar包的name,赋值。

manifest即是编译完成后生成jar包中的MANIFEST.MF配置信息

task copyJar(type:Copy){

from configurations.runtime

into ('build/libs/lib')

}

task release(type: Copy,dependsOn: [build,copyJar]) {

// from 'conf'

// into ('build/libs/eachend/conf')

}

建立函数copyJar用于把依赖的jar复制到对应的目录下。

函数release即是我们打包的时候的执行的函数,dependsOn[build,copyJar]这里会让执行relese函数的时候先执行build(系统自带的函数)和copyJar

最后通过gradlerelease命令进行打包

1. 配置培州槐程序启动入口

把main方法所在的配友包设为sources 如果已设置跳过此步。

File =>Project Structure =>modules

选择 src/ 点击 Sources

2. 配置打包范围和迹辩输出路径

File =>Project Structure =>artifacts

点击 "+" 选择 jar =>from modules with dependencies

main class 选择你的main方法启动类,点击OK

删除全部Extracted依赖 只保留 xxx compile output 保存

3. 打包

点击 build =>build artifacts =>xxx.jar =>build


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12523753.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存