我有一个侧面项目我在Java中.这是一个非常简单的webapp.它在Linux服务器上运行Tomcat并使用MySQL数据库.大多数代码都是使用Spring Framework编写的.它有很多单元测试.当我在Eclipse中编码时.当我部署应用程序时,我运行一些shell脚本将WAR文件移动到Web服务器,执行数据库更新,并对apache配置进行更改.我是唯一一个开发它的开发人员,现在它只部署到一个环境(生产),虽然有一天我可能想要一个测试或暂存环境.我通过Eclipse插件使用SVN版本控制.
我总是听说有人使用Maven作为他们的项目.由于有这么多人使用它,我对自己说它一定很好.我想在业余时间学习它.唯一的问题是我为什么不想使用Maven而卖得不透明?我的第一段听起来像是适合Maven的项目吗?对于与数据库交互的项目,它是否具有任何特定优势?
Mik*_*eck 11
Maven非常适合您的项目IMO.Maven是一个全面的构建和部署管理工具.它最大的优势在于它使构建脚本能够比功能上可比较的Ant文件或shell脚本显着地维护.
使用maven有很多优点,最大的优点是它优于约定优于配置.这意味着如果您使用Maven目录结构布置项目,则几乎不需要任何配置来构建和运行JUnit测试.
Maven为您提供的另一项重大胜利是依赖管理.您可以在Maven的配置文件(称为项目对象模型(POM))中以声明方式定义项目的依赖项,Maven可以将所有jar存储在它维护的本地目录结构中.对于公开可用的工件,罐子会自动从Maven中央存储库下载,如果是内部或专有的第三方罐子,您可以使用单个命令将它们安装到存储库中.
除了组织这些工件并自动设置构建类路径以包含所有必需的jar之外,maven还将管理依赖性层次结构.这意味着如果你的项目依赖于jar A而A依赖于jar B,那么即使你没有在构建配置中明确地将它列为依赖项,jar B也会自动与你的WAR捆绑在一起.
另外,从专业开发的角度来看,学习Maven是有道理的,因为根据我的经验,Maven已经取代Ant作为开源和专有Java项目中的法律选择构建工具.
所有这些都说,如果你有一个快速可靠的构建系统,那么仅仅为了使用其他人所用的相同工具而转换为Maven可能是不值得的.
Maven对你想做的事情很好.与大多数构建工具不同,maven明智地使用约定(至少比其他许多工具更好),并且它为您提到的每个区域都有"插件":
单元测试:maven surefire插件
Eclipse集成:m2eclipse
Maven还可以帮助您对Tomcat进行集成测试(如果有的话),因为您可以使用货物插件启动,停止或部署战争.
无论如何,如果你打算在业余时间阅读,这里有一本免费的书(PDF格式):Maven the definitive guide
希望能帮助到你!