IDEA中的打包Build Artifacts详解

        现在大家是不是很少遇见自己打包部署项目了,因为现在都是自动化部署,所以基本大的公司都没有了这一步。当项目开发完毕,需要对外发布时,我们就会用到IDEABuild Artifacts功能,那么如果在idea中打包呢。

        在没有创建Artifact时,菜单“Build”|"Build Artifacts..."是灰化的,不可用。所以,第一步是进入project structure创建Artifact。

        

选中"Artifacts",点击中间上面的“+”号,选中“From modules with dependencies...”如下图:

弹出如下窗口:

Module下拉框中选中需要打包的Module,

Main Class框中选择主类。

JAR files from libraries有两个选项:

        1、extract to the target JAR:表示将第三方JAR包内容都解压并统一打包到最后生成的JAR包。

        2、copy to the output directory and link via menifest:表示将第三方JAR包内容拷贝到输出目录。

         如果你只是希望打包Module本身,可以选择“extract to the target JAR”;如果希望打包Module的同时,也将第三方的JAR一起打包,可以选择“copy to the output directory and link via menifest”。因为我们希望保持第三方JAR包的独立性。

Directory for META-INF/MENIFECT.MF

这里是输入一个路径,用于保存MENIFECT.MF文件,使用默认的路径即可,也可以自己输入一个任意的路径。如果后面提示:

                        

就可以选择换一个路径,或将该路径下的MENIFEST.MF文件删除后重试。

Include tests

如果选中,打包时将会把测试用例(Tests)类也打包进去。通常不用选中。

设置好的创建如下图:

点击OK按钮,进入下一个页面:

Name 输入框中可以修改Artifact的名称(不是生成的jar文件的名称)。

如果希望修改生成的jar文件的名称,需要右键点击Output Layout框中的根节点,选择rename,如下图:

Output Layout 中,你可以添加或删除需要打包的内容。这里需要重点说一下:

1. 只打包Module本身

就可以删除第三方的JAR ,删除后的情况大致如下:

这时,打包后的JAR包中,就只包含这个Module的class,不会包含第三方JAR

2.打包全部

也就是说希望打包自己编写的代码以及第三方的JAR包,这时,建议点击下图箭头所指的图标,创建一个libs目录,将第三方的JAR包拷贝到libs目录。

创建好libs目录,并将第三方JAR包拖动到libs目录下,如下图所示:

这样就设置完成了。点击OK按钮完成设置。

注意:这里只是完成了Artifacts的设置,并没有进行实际的打包动作。这时,需要点击“Build”|"Build Artifacts..."菜单,

选择你刚刚创建的Artifact名称,并点击build菜单,才能完成打包动作,如下图:

打包完成后,可以在工程目录的out\artifacts目录下,看到打包的结果。

相关推荐

  1. IDEApom打包引入jar包

    2024-03-16 07:30:05       37 阅读
  2. IDEA 打包jar

    2024-03-16 07:30:05       17 阅读
  3. IDEA,Archetype作用

    2024-03-16 07:30:05       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-16 07:30:05       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-16 07:30:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-16 07:30:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-16 07:30:05       20 阅读

热门阅读

  1. C语言实现B树算法

    2024-03-16 07:30:05       18 阅读
  2. 【物联网】Modbus 协议简介

    2024-03-16 07:30:05       21 阅读
  3. STM32移植SFUD

    2024-03-16 07:30:05       23 阅读
  4. STM32利用AES加密数据、解密数据

    2024-03-16 07:30:05       19 阅读
  5. 项目中如何排查jvm问题

    2024-03-16 07:30:05       18 阅读
  6. 1688中国站获得联系方式 API 返回值

    2024-03-16 07:30:05       23 阅读
  7. Flask学习(一):flask程序入口(hello world)

    2024-03-16 07:30:05       19 阅读
  8. CSP 202209-2 何以包邮

    2024-03-16 07:30:05       20 阅读
  9. SQL zoo(zh)习题记录Ⅰ

    2024-03-16 07:30:05       22 阅读