前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Maven报错:The packaging for this project did not assign a file to the build artifact[通俗易懂]

Maven报错:The packaging for this project did not assign a file to the build artifact[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-08-28 05:06:09
发布于 2022-08-28 05:06:09
6.7K0
举报

大家好,又见面了,我是你们的朋友全栈君。

一、问题发生

我想使用IDEA的Maven管理工具将项目安装到本地仓库,于是选择了Plugins下的install:install去执行,如下图所示:

结果出现了如下报错信信息:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.4:install (default-cli) on project test: The packaging for this project did not assign a file to the build artifact -> [Help 1]>

二、问题解决

因问题分析比较长,怕没耐心看完。故将解决方案放在前边

方法一:使用Maven管理工具下的LifeCycle(生命周期)中的install,如下图所示 。网上也可以搜到这种解决方法,但是他的说法, “使用Lifecycle中的install,项目就会自动去maven仓库下载需要的包”是错误的。

方法二:使用Maven管理工具 工具栏中的Execute Maven Goal,如下图所示

点击打开,输入Maven命令,特殊说明:在windows的cmd中执行命令,需要在最前面加上mvn,而在这里不需要,如下图所示:

三、问题分析

解决问题很简单,知道问题为什么产生确不容易。然而这也是最重要的,要知其然更要知其所以然。通过下文,你可以了解到Maven的生命周期、阶段、插件和目标之间的关系,弄清楚关系之后,就可以明白,解决方案一和二的原理,并可以提出新的解决方案。OK,废话不多说,进入正文。 ————————————————进入正文—————————————————

1、生命周期(lifecycle)

Maven的生命周期就是对所有的构建过程进行抽象和统一。包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有的构建步骤。 Maven 内置的三套生命周期: (1) clean 清理项目 (2) default 构建、发布项目 (3) site 生成项目站点

2、阶段(phase)

阶段是生命周期的组成部分。特点:阶段在生命周期内具有顺序性,在执行生命周期中某个阶段时会先顺序执行本周期当前阶段之前的所有阶段,再执行当前阶段。

例如:clean周期共有3个阶段,按顺序分别如下:

  1. pre-clean
  2. clean
  3. post-clean

当执行命令mvn clean时,实际按顺序执行了clean生命周期的pre-clean和clean共2个阶段。

3、插件(plugin)和目标(goal)

阶段的执行依赖插件和目标。(对于这句话看个人理解,不太好翻译,官方原话:A Build Phase is Made Up of Plugin Goals)插件从本质上来说插件j是打成jar包的java程序,目标应该是程序的参数。 插件可以单独执行 例如 :

插件目标表示一个特定的任务,阶段负责生命周期中的特定步骤,它执行职责的方式可能不同。有些阶段声明绑定的插件目标,即通过执行相应目标的方式履行职责,有些阶段没有声明绑定的插件目标,,通过其他方式履行职责。

生命周期及其包含阶段,阶段声明绑定的插件目标见下表 (1)生命周期clean(3个阶段)

顺序

阶段

插件:目标

1

pre-clean

2

clean

clean:clean

3

post-clean

(2)生命周期default(23个阶段)

顺序

阶段

插件:目标

1

validate

2

initialize

3

generate-sources

4

process-sources

5

generate-resources

6

process-resources

resources:resources

7

compile

compiler:compile

8

process-classes

9

generate-test-sources

10

process-test-sources

11

generate-test-resources

12

process-test-resources

resources:testResources

13

test-compile

compiler:testCompile

14

process-test-classes

15

test surefire:test

16

prepare-package

17

package

18

pre-integration-test

19

integration-test

20

post-integration-test

21

verify

22

install

install:install

23

deploy deploy:deploy

deploy:deploy

(3)生命周期site(4个阶段)

顺序

阶段

插件:目标

1

pre-site

2

site

site:site

3

post-site

4

site-deploy

site:deploy

4、总论

在IDEA中使用Lifecycle下的install(即在命令行下执行命令mvn install),mvn install代表执行的是生命周期的一个阶段,由上文知,在执行install阶段先要执行其前面的21个阶段,之后执行install阶段(install阶段的执行依赖插件目标install:install) 在IDEA中使用Plugins下的install:install(即在命令行下执行命令mvn install:install) mvn install:install代表执行的是插件的目标,它单独执行,不会先去执行之前的21个阶段。 因此使用方案一可以解决问题。

又因为生命周期可以和插件目标一起执行,所以先执行verify生命周期阶段,在执行install:install插件,这样同样都是执行22个阶段了。 因此使用方法二可以解决问题。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/146164.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Maven 构建生命周期和插件简介
为了完成 default 生命周期,这些阶段(包括其他未在上面罗列的生命周期阶段)将被按顺序地执行。
acc8226
2022/05/17
4560
Maven 构建生命周期和插件简介
Maven详解(六)------ 生命周期
IT可乐
2018/01/04
6100
Maven详解(六)------ 生命周期
Maven生命周期详解
Maven强大的一个重要的原因是它有一个十分完善的生命周期模型(lifecycle),这个生命周期可以从两方面来理解,第一,顾名思义,运行Maven的每个步骤都由它来定义的,这种预定义的默认行为使得我们使用Maven变得简单,相比而言,Ant的每个步骤都要你手工去定义。第二,这个模型是一种标准,在不同的项目中,使用Maven的接口是一样的,这样就不用去仔细理解每个项目的构建了,一般情况下,mvn clean install 这样的命令是通用的。我想,一定是吸收了许多项目的经验,Maven才能定义出如此完善的模型。
bear_fish
2018/09/19
6870
跟着官方文档学Maven构建生命周期
Maven内置了三个生命周期:clean、default和site。生命周期是由多个顺序执行的阶段组成,它们的关系和说明如下:
dongfanger
2021/07/01
9100
Maven 生命周期
① Clean Lifecycle 在进行真正的构建之前进行一些清理工作。Clean 生命周期一共包含了三个阶段:
happyJared
2019/11/27
3200
Maven生命周期
在Maven出现之前,项目构建的生命周期就已经存在,软件开发人员每天都在对项目进行清理、编译、测试及部署。虽然大家都在不停地做构建工作,但公司和公司间、项目和项目间,往往使用不同的方式做类似的工作。有的项目以手工的方式在执行编译测试,有的项目写了自动化脚本执行编译测试。可以想象的是,虽然各种手工方式十分类似,但不可能完全一样;同样地,对于自动化脚本,大家也是各写各的,能满足自身需求即可,换个项目就需要重头再来。 Maven的生命周期就是为了对所有的构建过程进行抽象和统一。 Maven从大量项目和构建工具中学习和反思,然后总结了一套高度完善的、易扩展的生命周期。这个生命周期包含了项目的清理、初始化、编译、测试、打包、集成测试、验证、部署和站点生成等几乎所有构建步骤。也就是说,几乎所有项目的构建,都能映射到这样一个生命周期上。 Maven的生命周期是抽象的,这意味着生命周期本身不做任何实际的工作,在Maven的设计中,实际的任务(如编译源代码)都交由插件来完成。
栋先生
2018/09/29
9020
Maven生命周期
MAVEN学习笔记之Maven生命周期和插件简介(3)
MAVEN学习笔记之Maven生命周期和插件简介(3) clean compile site三套生命周期相互独立。 clean pre-clean 执行清理前的工作 clean 清理上一次构建生成的所有文件 post-clean 执行清理后的工作 compile validate generate-sources process-sources generate-re
王小雷
2019/05/26
3830
Maven生命周期
maven把项目的构建划分为不同的生命周期(lifecycle)。粗略一点的话,它这个过程(phase)包括:编译、测试、打包、集成测试、验证、部署。maven中所有的执行动作(goal)都需要指明自己在这个过程中的执行位置,然后maven执行的时候,就依照过程的发展依次调用这些goal进行各种处理。
陈不成i
2021/06/29
4160
Eclipse集成Maven打包时报错:[ERROR] Unknown lifecycle phase "mvn". You must specify a valid lifecycle phase
1、Eclipse集成Maven打包时报错:[ERROR] Unknown lifecycle phase "mvn". You must specify a valid lifecycle phase or a goal in the format。
别先生
2020/09/22
3.6K0
Eclipse集成Maven打包时报错:[ERROR] Unknown lifecycle phase "mvn". You must specify a valid lifecycle phase
SSH深度历险(四) Maven初步学�
这几天接触这个词,非常多遍了,仅仅是浅显的体会到它在GXPT中的优点,功能之强大,又通过网络查询了资料进一步的认识学习了,和大家分享。
全栈程序员站长
2022/07/09
2850
Maven(二)Maven项目的创建(命令、myeclipse)及生命周期
上一篇给大家介绍了Maven的概念和仓库的一些信息,接下来给大家分享一下使用命令和MyEclipse创建Maven项目 一、使用命令管理Maven项目 1.1、创建Maven java项目  1)创建一个文件夹(MavenProject)——>该文件夹下按shift+右击选择在此处打开命令窗口——>这样创建的maven[java]项目就在该文件夹下   2)命令:mvn archetype:generate -DgroupId=com.zyh.maven.quickstart -DartifactId=s
用户1195962
2018/01/18
1.7K0
Maven(二)Maven项目的创建(命令、myeclipse)及生命周期
Maven概念梳理 原
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的 软件项目管理工具。
wuweixiang
2018/08/14
4570
Maven概念梳理
                                                                            原
Maven使用教程三:maven的生命周期及插件机制详解
今天这个算是学习Maven的一个收尾文章,里面内容不局限于标题中提到的,后面还加上了公司实际使用的根据profile配置项目环境以及公司现在用的archetype 模板等例子。
一枝花算不算浪漫
2019/11/21
6020
《Maven实战》笔记
作为Apache组织中颇为成功的一个开源项目,Maven主要服务于基于Java平台的项目构建,依赖管理和项目信息管理
Yuyy
2022/06/28
1K0
maven实战总结,工作中常见操作
翻译:知识的积累、专家、内行。跨平台的项目管理工具。Apache 组织的开源项目。主要服务于基于 Java 平台的项目构建、依赖管理和项目信息管理。
Java识堂
2020/11/19
1.4K0
maven实战总结,工作中常见操作
maven介绍
1 如果使用了spring,去spring的官网下载jar包;如果使用hibernate,去hibernate的官网下载Jar包;如果使用Log4j,去log4j的官网下载jar包…..
Java架构师历程
2018/09/26
1.1K0
maven介绍
Maven环境配置及介绍[通俗易懂]
下载地址:http://maven.apache.org/downloa/d.cgi
全栈程序员站长
2022/08/28
1.1K0
Maven环境配置及介绍[通俗易懂]
Maven 核心原理解析(1)
Maven 是每一位Java工程师每天都会接触的工具, 但据我所知其实很多人对Maven理解的并不深, 只把它当做一个依赖管理工具(下载依赖、打包), Maven很多核心的功能反而没用上. 最近重读 Maven实战, 虽然这本书年岁较老(10年出版: 那还是Hudson年代), 但绝大部分还是很值得参考的. 本文讲述Maven的核心原理和概念, 因此还是大纲参考了这本书, 但细节大多参考的Maven的官方文档以及网友释出的博客. 本文主要讲解Maven的: 坐标与依赖、 仓库、 生命周期与插件、 模块聚合、
Java帮帮
2018/03/16
2.9K0
Maven 核心原理解析(1)
Maven第六讲 生命周期详解 高手必备!
他们的groupId和version都是一样的,程序员面对与重复的代码,需要提取,如果是java代码中,我们可以将同样的代码或者变量值,提取成方法或者变量,做到重用,方便维护。
易兮科技
2020/09/27
4550
Maven第六讲 生命周期详解 高手必备!
Maven系列第6篇:生命周期和插件详解?高手必备!
整个maven系列的内容前后是有依赖的,如果之前没有接触过maven,建议从第一篇看起,本文尾部有maven完整系列的连接。
路人甲Java
2019/11/25
3.2K0
Maven系列第6篇:生命周期和插件详解?高手必备!
相关推荐
Maven 构建生命周期和插件简介
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档