maven Mvn安装或Mvn包

bksxznpy  于 5个月前  发布在  Maven
关注(0)|答案(7)|浏览(67)

我是Maven的新手,我有一个基于Java的Web项目,在MyEclipse中配置了Maven。
现在如果我修改了任何java文件,那么我需要做Run as -> Mvn installMvn package吗?

kdfy810k

kdfy810k1#

http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
package:获取编译后的代码,并将其打包成可分发的格式,如XML。
install:将软件包安装到本地存储库中,作为本地其他项目的依赖项使用
所以你的问题的答案是,这取决于你是否想把它安装到你的本地仓库中。安装也会运行包,因为它在目标阶段堆栈中的位置更高。

chy5wohz

chy5wohz2#

mvn install是最常用的选项。
mvn package很少使用,只有在调试maven构建过程中的某些问题时才会使用。
参见:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
注意mvn package只会创建一个jar文件。
mvn install将执行此操作,如果其他代码依赖于这些jar,则将jar(和类等)文件安装到适当的位置。
我通常执行mvn clean install;这将删除target目录并在该位置重新创建所有jar。
清洁有助于不需要的或删除的东西,有时可以得到的方式。
而不是调试(一些时间)只是开始新鲜的所有时间。

dced5bon

dced5bon3#

从安装参考中,install 将运行项目的集成测试,package 不会。
如果您真的不需要安装生成的工件,至少使用 verify

f0brbegy

f0brbegy4#

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

c9qzyr3d

c9qzyr3d5#

如果您 * 不 * 使用 * 远程 * 存储库(如artifactory),请使用普通的old:mvn clean install
这是一个很老的主题,但是如果你运行你自己的仓库(例如:使用artifactory)来在你的团队中共享jar,你可能会想要使用
mvn clean deploy
而不是.
这样,您的持续集成服务器就可以确保所有的依赖项都被正确地推送到您的远程存储库中。如果您遗漏了一个依赖项,mvn将无法在您的CI本地m2存储库中找到它。

vltsax25

vltsax256#

正确的方法是mvn package,如果你正确地完成了构建的核心部分,那么就不需要在本地仓库中安装你的软件包。
此外,如果你使用Travis,你可以“缓存”你的依赖项,因为如果你在自己的项目中使用package,它不会影响你的$HOME.m2/repository
实际上,如果你想做一个mvn site,你通常需要先做一个mvn installsite有太多的bug,或者它有很多维护不好的插件。

ioekq8ef

ioekq8ef7#

这取决于您在更改Java文件后试图实现的目标。在您想要测试maven流程之前,您永远不需要做任何事情。Eclipse/MyEclipse将构建必要的内容,并将输出放在项目中的适当位置。您也可以运行或部署它(例如,如果它是一个web项目),而不需要显式地对maven执行任何操作。最后,要将项目安装到maven存储库中,你需要安装maven。你可能还有其他的maven目标需要执行,MyEclipse不会自动执行。
就像我说的,这取决于你想做什么。

相关问题