Mvn安装或Mvn包

use*_*023 124 java myeclipse maven

我是Maven的新手,我有一个基于Java的web项目,我的MyEclipse中配置了maven.
现在,如果我修改任何Java文件,然后做我需要做的Run as -> Mvn install还是Mvn package

ezc*_*odr 152

来自http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

package:获取已编译的代码并将其打包为可分发的格式,例如JAR.

install:将程序包安装到本地存储库中,以用作本地其他项目的依赖项

所以问题的答案是,这取决于你是否希望将它安装到你的本地仓库中.安装也将运行包,因为它在目标阶段堆栈中更高.


Joh*_*ica 32

mvn install是最常用的选项.
mvn package很少使用,只有在您使用maven构建过程调试某些问题时才会使用.

请参阅:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

请注意,mvn package只会创建一个jar文件.
mvn install能做到这一点,并如果其他代码依赖于这些罐子在适当的地方安装jar(和类等)的文件.

我经常做一个mvn clean install; 这将删除该target目录并重新创建该位置中的所有jar.
清洁有助于消除不必要或被移除的东西,有时可能会妨碍.
而不是调试(有些时候)只是一直开始新鲜.

  • 我不同意包装很少用于2分.1)每次运行安装时它都会运行.2)如果你正在制作.war,那么只需运行包就可以了,因为你不需要在当地的回购中打一场战争. (27认同)
  • 答案没有解释,为什么您更愿意安装到本地存储库.根据我的理解,如果项目设置正确,那么reactor将提供模块之间的依赖关系.如果项目设置不正确,那么安装可能只是隐藏这个事实并使用错误的工件.如果您有依赖项目,由于某种原因必须单独构建,那么您是否只想安装. (5认同)

dna*_*dna 9

Lifecycle引用中,install将运行项目的集成测试,package不会.

如果您确实不需要安装生成的工件,请至少使用verify.


Mr.*_*r.Q 5

另外你应该注意,如果你的项目由几个相互依赖的模块组成,你应该使用"install"而不是"package",否则你的构建将失败,因为当你使用install命令时,模块A将被打包并部署到本地存储库,然后如果模块B需要模块A作为依赖项,它可以从本地存储库访问它.