clean,compile,build,install,package区别

clean: 执行该命令会删除项目路径下的target文件,但是不会删除本地的maven仓库已经生成的jar文件

compile:编译命令,只编译选定的目标,不管之前是否已经编译过,会在你的项目路径下生成一个target目录,在该目录中包含一个classes文件夹,里面全是生成的class文件及字节码文件。

package:这个命令会在你的项目路径下一个target目录,并且拥有compile命令的功能进行编译,同时会在target目录下生成项目的jar/war文件。如果a项目依赖于b项目,打包b项目时,只会打包到b项目下target下,编译a项目时就会报错,因为找不到所依赖的b项目,说明a项目在本地仓库是没有找到它所依赖的b项目,这时就用到install命令了

install:该命令包含了package命令功能,不但会在项目路径下生成class文件和jar包,同时会在你的本地maven仓库生成jar文件,供其他项目使用(如果没有设置过maven本地仓库,一般在用户/.m2目录下。如果a项目依赖于b项目,那么install b项目时,会在本地仓库同时生成pom文件和jar文件,解决了上面打包package出错的问题)
build:功能类似compile,只是只对整个项目进行编译

build和compile的区别

compile:只编译选定的目标,不管之前是否已经编译过。
build:是对整个工程进行彻底的重新编译,而不管是否已经编译过。Build过程往往会生成发布包,这个具体要看对IDE的配置了,Build在实际中应用很少,因为开发时候基本上不用,发布生产时候一般都用ANT等工具来发布。Build因为要全部编译,还要执行打包等额外工 作,因此时间较长
打包过程

法一:clean,package(如果报错,很可能就是jar依赖的问题,一般此问题都出现在第一次打包的情况,就用法二)
法二:clean,install


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 

compile 先下载pom.xml中指定的依赖jar包,然后编译;
package 包括compile,然后打包为war文件;
install 包括package,然后安装到本地仓库;
deploy 包括install,然后部署到私服(远程服务器)。

可见,该4条命令所做的操作内容,有递增/包含的关系。
排序(按操作内容升序):
compile < package < install < deploy

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这是一条Maven的错误信息,提示没有为此构建设置任何目标(goal),必须指定有效的生命周期(lifecycle)阶段或者以插件前缀(plugin-prefix)为格式的插件(goal),例如:<plugin-prefix>:<goal>或<plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>。可用的生命周期阶段包括:validate、initialize、generate-sources、process-sources、generate-resources、process-resources、compile、process-classes、generate-test-sources、process-test-sources、generate-test-resources、process-test-resources、test-compile、process-test-classes、test、prepare-packagepackage、pre-integration-test、integration-test、post-integration-test、verify、install、deploy、pre-cleanclean、post-clean、pre-site、site、post-site、site-deploy。需要检查并重新指定构建目标。 ### 回答2: 这个错误提示意味着该构建项目没有指定目标,需要在命令行中指定合法的生命周期阶段或目标。命令格式应为 <插件前缀>:<目标> 或者 <插件组ID>:<插件Artifact ID>[:<插件版本>]:<目标>。可用的生命周期阶段有 validate、initialize、generate-sources、process-sources、generate-resources、process-resources、compile、process-classes、generate-test-sources、process-test-sources、generate-test-resources、process-test-resources、test-compile、process-test-classes、test、prepare-packagepackage、pre-integration-test、integration-test、post-integration-test、verify、install、deploy、pre-cleanclean、post-clean、pre-site、site、post-site、site-deploy。 构建项目时需要指定以目标为核心的操作,才能使构建动作按预期进行。如果没有指定目标,就会导致构建失败。因此,需要认真查看构建文档或者示例代码,了解具体的构建方式,并在构建命令中正确指定需要执行的目标。此外,需要注意选择合适的插件和版本,避免出现插件版本不兼容或者过时的情况,从而保证构建的顺利进行。 ### 回答3: 该错误信息来源于Maven构建工具。Maven是一个基于项目对象模型(POM)的构建工具,它可以通过一系列指定的阶段(lifecycle phase)执行任务(goal)来完成构建。在使用Maven构建项目时,如果出现“no goals have been specified for this build”的错误信息,那么可能是因为指定的任务(goal)或阶段(lifecycle phase)无效或不存在。 解决该问题的方法是需要在命令中指定存在的任务或阶段。可以通过在命令中添加有效的任务或阶段,或者在pom.xml文件中的build标签中添加指定的任务或阶段来解决。下面给出Maven常用的生命周期阶段及其作用: validate:验证项目是否正确且所有必须的信息可用。 initialize:初始化构建状态。 generate-sources:生成源代码。 process-sources:处理源代码,例如过滤、编译等。 generate-resources:生成资源文件。 process-resources:处理资源文件,例如复制、压缩等。 compile:编译源代码。 process-classes:处理编译后的代码,例如进行字节码增强、生成一些元数据等。 generate-test-sources:生成测试用例的源代码。 process-test-sources:处理测试用例的源代码。 generate-test-resources:生成测试用例的资源文件。 process-test-resources:处理测试用例的资源文件。 test-compile:编译测试用例。 process-test-classes:处理编译好的测试用例。 test:运行测试。 prepare-package:在运行打包之前执行一些构建操作。 package:打包构建的项目,生成jar、war等文件。 pre-integration-test:在集成测试之前执行一些操作。 integration-test:执行集成测试。 post-integration-test:在集成测试之后执行一些操作。 verify:执行额外的验证操作以验证打包的项目是否正确并达到质量标准。 install:将包安装到本地仓库,可以供本地其他项目使用。 deploy:将包拷贝到远程的仓库。 综上所述,处理该错误最关键的一点是要明确构建的目标,选择一个或多个生命周期阶段,或者指定一个或多个任务(goal)来完成该构建过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值