使用maven为Web应用程序构建eclipse项目的“正确”方法是什么?

时间:2011-12-23 02:48:41

标签: eclipse maven eclipse-wtp

我正在尝试使用Eclipse构建一个新的Web应用程序,我想使用Spring Web服务和Hibernate,所以我想我会尝试使用Maven而不是Ant,所以我不必追踪所有的JAR文件手动。这就是我做的......

我有一个新的eclipse工作区,我使用Eclipse Marketplace安装Maven for WTP功能。

我尝试了两件事,我真的不知道这样做的“正确”方法。非常感谢任何帮助!

ATTEMPT ONE:

创建了一个新的Maven项目,不确定我在做什么,但我选择了“maven-archetype-webapp”。它创建了一个具有不同(maven-esq)文件结构的eclipse项目。我添加了Spring Web作为pom.xml文件的依赖项。我可以在eclipse中运行web应用程序并查看hello world页面;并且'maven install'下载依赖项并生成war文件。但是,然后我尝试添加Java类“PersonController.java”并将其注释为@Controller(依此类推),但eclipse似乎并未认识到PersonController.java是一个java类。例如,我无法生成getter / setter或使用重构工具重命名,eclipse给我一个错误,例如“资源不在Java项目的构建路径中”。

最后,我觉得maven文件结构与eclipse所期望的完全不同,基本的eclipse功能似乎有些混乱。当然,我完全有可能做错了。

ATTEMPT TWO:

在Eclipse中创建了一个新的“动态Web项目”,一切都如预期的那样,我可以正常运行我的Web应用程序。现在我想将Spring库添加为Maven依赖项并且能够使用maven构建项目,所以我想我需要一个pom.xml文件。文件>新...似乎没有帮助我创建一个Maven pom.xml文件,我想如果我只是手动创建该文件可能无法正常工作。所以我不确定如何继续为我的“动态网络项目”添加maven支持。

所以我在这里......任何人都可以帮助......做正在做的事情的“正确”方式是什么? Maven是值得的吗?

谢谢!

2 个答案:

答案 0 :(得分:2)

我经常这样做,没有太多问题 - 是的,Maven肯定是值得的(虽然我一定不同意这里: - )。

我将继续您的尝试#1 - 但为了提供您可能正在寻找的详细信息级别,我们需要查看您的pom.xml和项目文件夹结构。我的猜测是,Maven希望您的Java源代码低于src/main/java,但您仍然可以将您的源代码放到JavaSource之类的内容中。

在任何情况下,请确保您使用的是最新版本的Eclipse(Indigo / 3.7.1),m2e(最新版本和最佳版本,以前称为m2eclipse),以及“Maven Integration for WTP”。 Eclipse Marketplace。

最后,我会遵循Maven的惯例。在我与Maven的第一轮中,我认为我比Maven的标准更聪明,并且使用了我自己的 - 这实际上是与Eclipse默认的混合。但是,我很快就确定Maven的默认设置更符合我的大部分需求,而且它们更像是一种可以在IDE中轻松工作的标准(甚至没有IDE)。

答案 1 :(得分:1)

我不会说有一种正确的方法,因为不是每个人都想使用maven原型,这来自我恢复遗留网络应用程序的经验。对于第二种方法,您需要m2eclipse插件来添加maven支持(如果没有,则自动创建pom文件)。

至于值得麻烦吗?您将不得不根据您正在处理的项目类型以及您愿意使用maven的程度来评估自己。一旦超过初始学习曲线,这绝对是管理共享依赖关系的好方法。如果你打算尽可能地遵循maven惯例,这也是做它的最佳时机(或弄清楚如何去做),因为它后来会变得更加昂贵。