如何创建一个将在eclipse和命令行中工作的maven项目

时间:2013-07-19 20:00:19

标签: eclipse maven

我有任何问题:

  1. 如何创建将在eclipse和命令行中工作的maven项目。
  2. 如何使用maven优秀的开发人员?

1 个答案:

答案 0 :(得分:0)

哇,这就是很多问题。我承认用Maven和Eclipse建立一个webapp项目可能很棘手,所以我会尽力回答它们。

使用Maven

创建Web应用程序项目
  

如何使用maven创建一个带有servlet jsp和其他类的java web项目?它创建了一个简单的目录结构,src-> main-> java。

创建Java Web项目时,最终产品应为WAR或EAR文件。 WAR和EAR文件是具有特定结构的JAR文件,可以部署在应用程序服务器或servlet容器中。

如上所述,为Web应用程序设置Maven项目的最简单方法是使用原型:

mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp

如果我们使用此原型创建项目,则会生成一个简单的目录结构和pom.xml。这个项目遵循你提到的标准Maven目录布局,/src/main/java//src/test/java等.Maven使用war:war目标从这个结构生成WAR文件。

请注意,此原型适用于非常简单(过时)的Web应用程序,但它是最佳可用起点。您可能想要丢弃web.xml文件并创建一个支持Servlet 3.0的新文件。

WEB-INF位置

  

我在哪里以及如何放置web-inf文件夹?

默认情况下,Maven期望应该放在WAR文件根目录中的资源(例如images,html页面和WEB-INF目录)驻留在/src/main/webapp/中。 因此WEB-INF文件夹应位于/src/main/webapp/WEB-INF/如果您使用maven-archetype-webapp,则会自动创建此目录以及示例web.xml文件。

Eclipse集成

您在问题标题中提到了Eclipse,并且确实可以使用m2eclipse插件在Eclipse中开发Mavenized Web应用程序。 Eclipse通过WTP(Web Tools Platform)对Web应用程序提供了很好的支持。

虽然互联网上有很多指南(错误地)推荐它,但你不应该使用mvn eclipse:eclipse命令来创建Eclipse项目。这个插件只能为很老的Eclipse版本生成WTP项目(WTP 2.0是最大的)。相反,使用m2 here所述的m2eclipse插件。

依赖关系

  

我是否需要手动将jdbc-drivers添加到web-inf / lib中的文件夹中,或者只是指出依赖项?

没有必要手动执行此操作,因为Maven的一个主要优势是依赖关系管理。如果在pom.xml中添加依赖项,其范围为 compile runtime ,则JAR文件将自动包含在WAR的WEB-INF/lib/目录中文件。例如,要添加Postgresql JDBC驱动程序依赖项,请将其添加到pom.xml:

<dependency>
    <groupId>postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>9.1-901.jdbc4</version>
</dependency>

由于范围未指定,Maven将假定它位于默认范围 compile 中。结果是Maven将在WAR文件中包含WEB-INF/lib/postgresql-9.1-901.jdbc4.jar

测试

  

有没有办法用junit测试servlet?

Stackoverflow上已经提出(并回答了)这个问题:

参考