2013-03-16 52 views
2

我有完全用Java编写的一个项目,并使用一些外部Java库(休眠,一对夫妇的Apache公地,MQ,非常标准的东西。)Maven和Eclipse的

我已经习惯了使用Eclipse工作,但这个项目 - 我从一群开发人员中不再继承的公司 - 正在依靠Maven。

我不知道他们为什么首先使用Maven(他们不能与我分享这些知识)。项目规模中等,公司没有做的事情太复杂。

现在我的问题是:是否有任何理由让我保留Maven?仔细阅读,我找不到任何真正的理由,我对目录结构特别不满意,这要求我下降到3个层次才能到达实际的Java包和Java代码。我想要做的只是将所有东西都移动到Eclipse中,使用Eclipse结构,它需要1-2天的工作才能运行,所以不会浪费大量时间,并且从我的角度来看现在看来,这将使我的生活变得更简单,并让我为雇用我的公司做得更好。)

+2

为什么不直接将maven项目导入到eclipse中进行开发,并使用maven在命令行或CI框架中构建。 – 2013-03-16 18:19:09

+2

艾迪,这不是一个“或/或”的选择。完全可以同时使用maven和eclipse - 用于eclipse的m2e插件使得这项工作相当不错,大部分时间...... – bacar 2013-03-16 18:20:05

+0

感谢您回复,Tim和bacar。为什么甚至会打扰Maven? Eclipse可以创建所有的东西,而且它在这个简单的任务上做得非常出色。 – Eddy 2013-03-16 18:20:41

回答

3

使用maven,您不必关心在项目中导入jar,因为它是在pom文件中提到。如果需要的话,这些jar也会从maven仓库下载(它应该存在于maven仓库中)。它也将帮助你一次性制作所有的罐子(只需配置一次):)

+0

因此,我是否正确理解某处存在jar文件存储库,并且一旦我指定了它的位置,Maven就会自动获取从它的罐子(甚至可能更新版本?)这听起来有点疯了。我从事过许多项目,一旦我将所有必需的jar放入Eclipse的lib目录中,我再也不用担心它们了。 – Eddy 2013-03-16 18:24:54

+1

在谷歌上搜索关于“maven repository”的地方,所有的罐子都放在那里。它会下载你在pom文件中提到的jar版本。它非常方便,因为您不需要担心依赖关系,因为它们会自动下载:) – Sach 2013-03-16 18:27:51

+1

@Eddy - 中央jar库不是比linux软件包储存库甚至智能手机应用程序商店更“疯狂”的:-) – radai 2013-03-16 18:31:18

5

是的:手动管理传递依赖是傻瓜的差事,它有很多其他功能也是复杂的做手动。

仅依赖于IDE的构建过程,通常是一个糟糕的想法。不是每个人都使用相同的IDE,IDE或版本的IDE。与后者一起,CI系统是无头的,并依赖于构建文件。

使用Eclipse-Maven插件,如m2eclipse或类似软件。

+0

戴夫,你能看看我对下面答案的评论吗? (并感谢您的回复。) – Eddy 2013-03-16 18:25:34

+0

@Eddy尝试更新任何版本。即使是一个相对较小的Java项目也可能有6个顶级依赖关系,而这些依赖关系依次存在依赖关系等。手工跟踪这些只是愚蠢的,*非常困难,并且可能导致几个小时的调试。 – 2013-03-16 18:50:37

+1

用于IDE位。在我工作的地方,我们有人使用Eclipse,IntelliJ,Netbeans,emacs和vim。而且它一切正常,因为我们远离IDE特定的功能并使用Maven构建。 – yshavit 2013-03-16 18:51:18

1

Maven是一个强大的可扩展的开源项目构建器。配置包含在XML文件中,因此可以通过任何文本编辑器轻松访问。如果您想分享配置,您只需发布pom.xml即可。许多IDE都将项目配置转换为Eclipse和Eclipse,但此配置是本地配置,由开发环境在内部使用。开发人员甚至不会将这种配置保存在VCS中。检查出这样的配置是没有意义的。但是maven是独立的,因为它依赖于外部存储库来跟踪项目使用的每个库和版本。包括Eclipse在内的许多IDE都通过插件支持Maven。这可以保持完整的两种配置。

0

你应该保留Maven,如果你想使用Eclipse,你可以做到这一点,并仍然有Maven的功能。您可以在Maven中使用任何文件夹结构,只需在pom文件中指定路径即可。