idea配置artifacts(IDEA里面的Artifact到底是什么)

本文目录
- IDEA里面的Artifact到底是什么
- IDEA打包jar程序
- Intellij IDEA官方帮助文档解释什么是Artifact(原文翻译)
- Intellij Idea导入项目时无法生成Artifacts
- 在IDEA中配置Tomcat出现错误:Warning: No artifacts configured
IDEA里面的Artifact到底是什么
我表示,我在刚刚整这个web开发的时候,在配置tomcat的时候,我也是很好奇,这个东西是什么?
一般会见到如下的图。
Artifact 是maven中的一个概念,表示某个module要如何打包。这又多个模块的概念,不懂的就先当他是个web项目吧,
例如war exploded、war、jar、ear等等这种打包形式;
一个module有了 Artifacts 就可以部署到应用服务器中了!
好奇这个带不带exploded的有什么差别不?
这个是不带exploded的。和下图的框框对比下,就可以看到差别啦。
explode 在这里你可以理解为展开,不压缩的意思。也就是war、jar等产出物没压缩前的目录结构。
建议在开发的时候使用这种模式,便于修改了文件的效果立刻显现出来。
经过上面的这简单图文说明,现在就好理解一点了吧。
IDEA打包jar程序
打包jar一共有两种方式
第一种:
快捷键(Ctrl+Alt+Shift+S)打开项目的Project Structure。在Artifacts创建
接着,指定main class,如下:
最后,得到创建得到的artifacts
注:这里可以通过“+”或者“-”选择那些需要打入artifacts的第三方jar文件,也可以将maven中的包都导入进来;
在菜单栏目选Build,最后一栏Build Artifacts
最后,在出现的窗口创建
得到打包结果:
去执行
一般会执行成功如果执行出错查看是什么错误排查即可;
maven打包的步骤:
maven 默认打包插件,用来创建 project jar
pom.xml配置如下:
2.1 maven-jar-plugins 无依赖第三方jar的打包
maven 默认打包插件,用来创建 project jar
pom.xml配置如下:
运行:在target中找到打包出来的xxx.jar包,运行java -jar xxx.jar即可,但是如果程序有依赖其他包,比如程序依赖jdbc去查询db,这时候再执行就会出现找不到jdbc依赖,因为我们并没有将依赖包打进去。
支持定制化打包方式,更多是对项目目录的重新组装。以下方式用的比较少,因为我们依赖的jar,也会打进到我们最终生成的jar中,会导致一个jar文件过大,而且如果要给第三方使用,最好给一个纯净的。
pom.xml配置如下:
支持定制化打包方式,更多是对项目目录的重新组装。在2.2基础上,我们还可以利用assembly,将我们依赖的jar归类,打包成一个zip。发布项目的时候,将zip包copy到服务器上,直接unzip xxx.zip,里面包含要运行的jar以及依赖的lib,还有配置的config文件,还可以包括执行脚本,可以直接启动服务。
maven-assembly-plugin还需要配置一个assembly.xml文件,用于过滤不必要的第三方jar包文件,或者确定自己编译的项目文件路径、项目的启动脚本文件目录,打包的类型格式zip或者tar.gz等。
assembly.xml文件内容为:
打包结果为:
用来打可执行包,包含依赖,以及对依赖进行取舍过滤。使用这种方式打出来的是揉合在一起,成为一个jar文件。这种打包方式的优点是可以利用transformer把第三方jar相同的配置文件组合成一个文件,如reference.conf文件等等。
pom.xml配置如下:
打包结果:
该插件主要用于项目maven编译打包时,跳过单元测试,pom.xml配置为:
文献:
IntelliJ IDEA自身以及maven项目打包方式(单模块) - 牧梦者 - 博客园 (cnblogs.com)
Intellij IDEA官方帮助文档解释什么是Artifact(原文翻译)
说明
***隐藏网址***
Artifact是什么? (What is an artifact?)
Artifact是你的项目资产的一个集合, 将他们项目中的文件放在一起去测试, 部署或者描述你的软件解决方案, 又或是项目的一部分.
例如是以编译的java class文件, 或者打包成java档案文件(jar包文件)的java应用, 一个web应用的文件夹(就是webcontent或myeclipse下的webroot)结构或者是一个web应用程序档案文件(war包文件)等.
Arifact是可以是一份档案文件, 或者是一个文件夹的结构, 包含下列元素:
一个或多个的项目模块编译输出(也就是类路径src下面的资源).
模块依赖包含的lib包.
资源文件的集合(web网页, 图片, 描述文件( descriptor files )等)
其他的Artifact
单独的文件, 目录或者档案(在部署构建artifacts的时候可以自己添加其他地方文件等)
Note : 上面说的档案一般是压缩文件, 例如war包, jar包, ear包.
Artifact的配置 (Working with artifact configurations)
Artifact的生成与 Artifact的配置有关, Artifact是在 Project Structure(项目结构) 对话框中进行管理的. (File | Project Structure | Artifacts).
Artifact配置关键的部分是 在 输出布局选项卡 Output Layout tab . 指定 Artifact的结构和内容.
译者注 : 将项目中的东西组合在一起的一个过程, 例如eclipse里我们添加jar包是直接add to path. idea就是在要在modules和artifacts这里配置lib等一些其他的文件.
构建Artifact (Building artifacts)
你可以在 Build | Build Artifacts 处构建你自己的 Artifact.你也可以通过执行 run/debug的配置来构建一个Artifact.在对应的 run/debug配置中, 在运行之前添加一个 Build 《ArtifactName》artifact
的任务到任务列表. 当你执行 run/debug配置的时候Artifact会自动构建. (Run | Run or Run | Debug)
在run/debug配置中包含一个构建Artifact的任务是有意义的, run/debug配置会以某种方式使用相应的artifacts.
译者注 : 上面这句话是说, 在我们添加了一个运行服务器的配置的时候可以在Deployement这个选项卡那里添加一个artifacts, 如果有已存在的artifacts, 那么会直接添加进来, 如果没有则会自动带你到Build | Build Artifacts这个地方去让你构建artifacts.
例如在一个应用服务器中启动一个打包成jar包中的artifact,或部署一个WAR/EAR artifact.默认情况下, 当Artifact构建时, 它会被放在out/artifacts/《artifact_dir》
文件夹.
运行JAR Artifact (Running JAR artifacts)
运行一个打包成JAR的java应用程序, IDEA提供了一些JAR应用运行配置(JAR Application run configurations), 创建这样的运行配置:
打开Run/Debug配置对话框( Run | Edit Configurations )
单击 + 号 , 然后选择JAR应用.
部署Artifact到应用服务器和云平台 (Deploying artifacts to application servers and cloud platforms)
许多artifact的格式(例如 WAR, 分解的WAR(Exploded WAR), 分解的EAR)都适合部署到应用服务器和云平台.以下是如何部署一个这样的artifact:
在一个服务器或云服务器的run/debug configuration中, 指定需要部署的artifact(使用部署选项卡或区域(Use the Deployment tab or field.))
在 run/debug工具窗口 , 或应用服务器中执行run/debug配置或使用部署命令
Intellij Idea导入项目时无法生成Artifacts
最近连续用idea直接从github上直接checkout,项目中已经包含out文件夹,已经包含war exploded包,然而idea无法识别此artifact,于是欲重新创建时无war exploded选项,tomcat找不到对应的启动包。
如图,首先从modules开始,新建web模块,文件指向:F:\_SOFTWARE\_CODE\IntelliJ IDEA 2018.1\workspace\Graduation\src\main\webapp。此时应该会提示在Artifact里没有web模块之类的话,然后选择Fix一下。
顺便注意一下,可能还未能识别出spring的配置文件,需要手动添加,添加位置点开绿色的spring即可看到
随即进入Actifact新建war包时即可选择From Module
在IDEA中配置Tomcat出现错误:Warning: No artifacts configured
出现错误:Warning: No artifacts configured
解决方法:
修改项目的JRE文件的路径:

更多文章:
数据库管理系统和数据库系统分别侧重(数据库,数据库管理系统,数据库系统,这三个分别是什么意思并举个实例)
2026年9月7日 17:00
springmvc的依赖(springMVC的注入方式有哪几种,这与springMVC依赖)
2026年9月7日 14:00
display flex 自动换行(overflow-y:hidden;overflow-x:auto;无效解决方法)
2026年9月7日 11:00
timestamp without time zone(Postgresql中to_date()函数使用问题)
2026年9月7日 09:40







