我倾向于避免mvn install
在我的多模块项目中使用,因为我觉得我不知道在构建/启动其他子模块时(特别是经常在分支之间切换时)使用哪个确切版本的子模块。
我倾向于使用mvn package
很多然后mvn verify
.
我现在在一个 FOSS 项目(还有一个 Maven 原型)中遇到了这个问题,我想在其中使用 Maven 的最佳实践。
这是一个多模块项目,其中一个 webapp 子模块取决于其他模块,让我担心的是与(或)一起开发的简易性。mvn jetty:run
jetty:start
目前,我定义了 2 个配置文件:
prod
,默认的,声明对其他子模块的依赖;dev
另一方面,不依赖于其他模块,并jetty-maven-plugin
通过将其他模块的输出目录添加为extraClasspath
和来配置resourcesAsCSV
。
这样,我可以mvn package
一次又一次cd webapp && mvn jetty:start -Pdev
地快速迭代,重新加载 web 应用程序,而无需停止服务器。
AFAICTextraClasspath
是为此目的而添加的(JETTY-1206)。
我被指出在tomcat7-maven-plugin
使用 Maven 3 时可以从反应堆构建中解析模块(我提出了一个问题以将其带到 Jetty:JETTY-1517),但这几乎不能解决我的问题
如果我没有从dev
配置文件中删除对其他子模块的依赖,我必须先做一个mvn install
,以便验证 POM 不会失败,即使jetty:start
之后不使用这些依赖。
所以这是我的问题:mvn install
真的那么普遍吗?或者我将反应堆内依赖项仅放在prod
配置文件中的方法好吗?
(请注意,我有完全相同的问题gwt-maven-plugin
,所以请不要告诉我简单地切换到 Tomcat;这实际上根本行不通,详情请点击此处)