我倾向于避免使用mvn install我的多模块项目,因为我觉得我后来不知道哪一个子模块的确切版本,然后使用建筑时/启动其他子模块(特别是部门之间经常切换时).
我倾向于使用mvn package很多然后mvn verify.
我现在面临着一个FOSS项目(Maven原型)的问题,我想使用Maven的最佳实践.
这是一个多模块项目,带有一个webapp子模块,取决于其他模块,让我担心的是开发的简易性和mvn jetty:run(或jetty:start).
目前,我定义了两个配置文件:
prod,默认值,声明对其他子模块的依赖;dev在另一方面不不依赖于其他模块,并配置jetty-maven-plugin通过将其他模块的输出目录,extraClasspath和resourcesAsCSV.mvn package一次又一次cd webapp && mvn jetty:start -Pdev地快速迭代,重新加载webapp而不需要甚至停止服务器. AFAICT extraClasspath是为了这个目的而添加的(JETTY-1206).
我一直指出,tomcat7-maven-plugin当使用Maven 3时,它可以解决反应堆构建中的模块(我提出了一个问题,将它带到Jetty:JETTY-1517),但这很难解决我的问题
如果我没有从dev配置文件中删除对其他子模块的依赖,那么我必须先执行mvn install一次,以便验证POM不会失败,即使jetty:start之后不使用这些依赖项.
所以这是我的问题:mvn install真的很常见吗?或者我的方法是只将内部反应器依赖项放在prod配置文件中?
(请注意,我有完全相同的问题gwt-maven-plugin,所以请不要告诉我只需切换到Tomcat;这实际上甚至不起作用,详情请点击此处)
我刚刚找到了一个解决方法(这似乎是事后的逻辑):https://jira.codehaus.org/browse/JETTY-1517 ?focusedCommentId=306630&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#评论-306630
简而言之:默认情况下在父模块中跳过插件,然后在需要时重新启用它。
然而,只有当插件可以被跳过(即具有skip配置)并且仅在一个特定的子模块中使用时,这才有效,并且必须针对您需要/想要以这种方式运行的每个插件有选择地完成(在我的情况下,jetty:run和gwt:run) 。
| 归档时间: |
|
| 查看次数: |
2511 次 |
| 最近记录: |