2

我有任何问题:

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

1 回答 1

0

哇,这一次有很多问题。我承认使用 Maven 和 Eclipse 建立一个 webapp 项目可能会很棘手,所以我将尝试全部回答。

使用 Maven 创建 Web 应用程序项目

如何使用 servlets jsp 和其他带有 maven 的类创建 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 文件根目录的资源——例如图像、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 工具平台)对 Web 应用程序有很好的支持。

尽管 Internet 上的许多指南(错误地)推荐它,但您不应该使用 mvn eclipse:eclipse 命令来创建 Eclipse 项目。这个插件只能为非常旧的 Eclipse 版本生成 WTP 项目(WTP 2.0 是最大值)。相反,请使用此处描述的 m2eclipse 插件。

依赖项

我是否需要手动将 jdbc-drivers 添加到 web-inf/lib 内的文件夹中,或者只是指出依赖关系就可以了吗?

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

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

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

测试

有没有办法用junit测试servlet?

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

参考

于 2013-07-19T20:28:39.957 回答