我有一个侧项目I do=。这是一个非常直接的网络应用程序.它运行在Tomcat在Linux服务器上,并使用一个MySQL数据库。大多数代码写的弹簧框架。它有很多单元的测试。当我编码它是在食。当我的部署应用程序,我跑几个脚本移动一场战争的文件的网页服务器,做到数据库的更新和修改apache配置.我是唯一开发工作上,而现在它只部署到1环境(生产),虽然某天我可能要有一个试验或临时的环境。我用SVN版本控制,通过日食插件。

我总是听到有关人民使用家用于它们的项目。由于如此多的人正在使用它,我对自己说它必须是良好的。我想了解它在我的业余时间。唯一的事情是我不卖了,为什么我会想到使用家?我的第一段的音像一个适当的项目进行家?没有任何特定优势,为这个项目进行交互数据库?

有帮助吗?

解决方案

您的项目听起来不像是适合Maven的项目。您似乎有一个有效的开发环境。为什么要设置另一个?它只会给你一个项目文件来维护,这打破了良好的“ DRY 原理

其他提示

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

部署WAR文件: WAR插件部署插件

Maven也可以帮助你对Tomcat进行集成测试(如果你有的话),因为你可以使用货物插件

无论如何,如果你打算在业余时间阅读,这里有一本免费的书(PDF格式): Maven the definitive guide

希望它有所帮助!

我在工作中愤怒地使用maven。这是一个严厉的情妇。只要你正在做很多其他人所拥有的事情,这会让事情变得简单,这很重要,只要你按照maven认为应该做的方式来做这些事情。走开那条狭窄的道路,它会在每一步都为你而战。

BuildR 从侧面使用它给我留下了深刻的印象。它可以像ANT一样灵活,同时利用maven的依赖系统。此外,它正处于孵化阶段,所以它的边缘有点粗糙。

我一旦开始一个新的临时工作,这是使用专家.烧了2天试图找出他们的家建设工作。变成了他们的所有使用家1.01上窗户我已经无意中在试图建立上1.02,所以它不是我的工作。没有一个人在新的地方如何,它的工作,他们会被使用了好几个月他们都很高兴。几个月后在同一项目,我不得不深入挖掘的果冻脚本改变一个单一的建立变量。这不是有趣的。

当我第一次开始使用它,我读"《公约》的通过构造",并"采用一套标准的目录"。这些都是没有任何地方我可以找到上文档。我猜你应该要猜测。

我的意见:

  • 任何工具,你使用的你没有完全理解是错误的,与一个潜在的船的锚你的发展进程。如果该工具是真的,真的很复杂,你在承担责任用最简单的一部分,而不是掌握它深刻。如果你不使用或回避的最强大的部分工具,你可能会击败的目的使用它。
  • 家是一个典型的例子的东西,所以完全自动的善良,你不知道什么做的除非你奉献远远更多的时间比建立工具,应该成为一家专家.过设计的解决方案在搜索的一个问题。
  • 我没有找到任何实例的事情,我需要做我不能做的蚂蚁和需要的专家。我知道有一些,我只是从来不需要他们。如果我没有我可能会更多慈善关于所需的努力来处理与家.
  • 它使你的生成依赖于在互联网上。这并不罕见,现在到下一个小项目,运行的会为了寻求简便,并有家下载10插件之前就开始,以建立什么你在试图建立在第一位。它是什么做的?没有办法知道是不是真的但你最好希望它不会中断。当它失败了,复杂性的失败和积层上的依赖关系使它基本上没有希望的调试。我看不出为什么这是在任何方式改进简单的建造工具或者甚至是可取的任何理由。

在摘要,这几乎是神奇,只是当它不工作可能会有不知道为什么。这似乎是一个不好的折衷。这是,是公平的,几年前。我知道我是不友善的,它改进了在随后的版本(这是我们使用)。尽管如此,我讨厌它(可以告诉你?)

我们完全按照您在项目中所做的,我们使用maven。您希望使用maven来实现标准化布局和构建项目的方法。您永远不必将所有这些jar依赖项存储在SVN中或将它们保存在特殊区域,maven会为您执行此操作。 Maven还可以让其他开发人员轻松了解您的项目。一旦你开始使用它,你永远不想回头看:))

除了许多oss项目正在使用(或转换为)maven并且一些封闭源项目正在转向maven之外,您的项目并不一定会因使用Maven而受益匪浅。

但是,如果您考虑开源,那么项目的用户可能会从您的maven项目中受益。

maven(jar依赖项)的一些重要好处可以用于常春藤( http:// ant .apache.org /常春藤/ )。

然后,再次,因为您似乎表明您是唯一的开发人员。如果maven对你不起作用,你可以迅速恢复。

BR,结果 〜A

别。查看其他人,并仔细研究。另外考虑在SO上查看我对Maven的一些其他评论。

前段时间我使用maven进行依赖管理,因为我厌倦了添加所有的jar,如果我想在另一个盒子上测试它的话。你不必为此“学习”它,直到你学习它并不需要花费太多时间。

然而最简单的事情就是问一个已经认识mvn的人,这样他就可以告诉你它是如何工作的,然后你就会很快学会它。

Maven的一大优势在于,它可以在不编写任何构建脚本或甚至不必描述构建过程的情况下执行大量构建/依赖管理。您已经拥有了项目设置,因此您无法从Maven为您设置项目shell或下载您指定的依赖项而不必单独下载它们。如果您的目标是学习如何使用和管理Maven,那么这样做的项目就是没有其他开发人员而且构建过程非常简单(从我所知道的)也不会有太大帮助。所以我建议不要在现有项目中使用Maven。

然而,我会使用Maven设置一个类似于您的简单测试应用程序,并将其与您项目的结构进行比较,看看您是否遵循最佳实践(至少在Maven开发人员看到它们时)以及您的应用程序是否遵循标准Web应用程序约定。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top