现在大家是不是很少遇见自己打包部署项目了,因为现在都是自动化部署,所以基本大的公司都没有了这一步。当项目开发完毕,需要对外发布时,我们就会用到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目录下,看到打包的结果。