Java EE7和Maven工程入门(2)

简介:

目录

  1. 一个简单Maven工程的结构
  2. 建立一个简单的WAR工程

先来回顾一下第一部分

我们已经建立了父pom文件。这种特殊类型的文件用来定义我们项目即将使用的类库,它也配置了所有为了打包项目的每个模块而使用的maven工具。你可以检出第一部分代码 。

所以,直到现在我们开发的项目目录中我们只有一个叫做sample-parent的文件夹。而且在这个目录中包括pom.xml文件——这就是我们的父pom。

在我们定义的modules部分中可以看到,我们的项目由以下几块组成:

  • sample-ear
  • sample-web
  • sample-service
  • sample-domain

我们需要创建相关的maven模块并给每个模块增加对应的pom.xml文件。

定义war模块

我们在sample-parent文件夹下创建一个叫做sample-web的子文件夹,并且在这个文件夹下面添加一个pom.xml文件(一些人同时完成这两个步骤)。

1
2
3
4
5
6
7
8
9
< project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" >
     < modelVersion >4.0.0</ modelVersion >
     < parent >
     < groupId >gr.javapapo</ groupId >
     < artifactId >sample-parent</ artifactId >
     < version >0.0.1-SNAPSHOT</ version >
     </ parent >
     < artifactId >sample-web</ artifactId >
</ project >

但是这个没啥用。我们需要更加具体指出这个pom会帮助我们构建什么。因此我们需要去定义打包类型,该模块的名称(也是war包的名称)和其他的一些依赖项。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
...
< artifactId >sample-web</ artifactId >
< packaging >war</ packaging >
< build >
   < finalName >${project.artifactId}</ finalName >
</ build >
  
< dependencies >
   < dependency >
         < groupId >javax</ groupId >
         < artifactId >javaee-api</ artifactId >
         < scope >provided</ scope >
    </ dependency >
</ dependencies >
</ project >

如果你使用支持maven的IDE(比如Eclipse),会自动发现pom内容的变化。同时会自动为你创建文件夹,与你的maven war包名一致。它会按照下面的结构创建文件夹。你当然可以自己手动创建,借助工具还是很方便的。

sample-web

  • src
    • main
      • java(在这里添加java代码)
      • webapp(这里就是WEB-INF\web.xml 的位置)
      • resources(资源,像配置文件)
    • test
      • java
      • resources

在webapp子文件夹下我已经提前创建好了\web-INF\web.xml文件。可以跳过这个环节,因为maven插件可以帮我做这个工作。这里为了说明如果想要自己创建或者应对其他一些需要自定义项的情况,

如果你想知道在空的servlet 3.1 web.xml文件里面写点什么,请看看这里或者下载本文的代码。我已经在sample package下的java子文件夹下放了一个非常简单的servlet。这个将被包含到我们的项目中,只是很少的几行代码。你可以在本文末尾找到git(bitbucket)链接,下载本文所有代码。

因此,仅仅在我们的war模块的pom文件中添加了很少几行代码。如果有IDE,这个工具会很神奇的帮我们创建一个非常详尽的文件布局。我们根据这个布局然后添加一个非常简单的servlet java文件和很少的xml描述符。这才是真正的意图所在。

maven最爽的事情就是,war模块一些需要去构建的东西已经在这个特殊的父pom文件里面被预先定义和配置好了。但是这些东西是什么,maven将如何去使用它们?正如我们已经描述了Maven的全部约定。通过正确的方法排列正确的事情,然后它们就会为你完成所有的工作。

当maven扫描这个war包的时候,它需要去做:

  • 编译我们的java servlet类
  • 打包sample-web文件夹下面的所有东西变成一个war文件和少许依赖项。

既然我们没有添加一些特殊的东西在我们的war pom文件中(除了一个依赖库),那谁为我们做的这些工作呢?那当然是这个配置和我们的父pom文件了(详情请查阅上一篇文章)。

这个maven-compiler-plugin插件将被触发去编译我们的源文件。既然我们已经定义了maven模块的打包是war方式,然后maven-war-plugin插件将被触发去为我们打包一切东西,然后创建适当的注释。

当我们的项目有好几个war或者jar模块情况的时候,如果我们有一个父pom,并且我们已经为它定义了一个中央位置的插件和基本的配置,那么我们就没必要去在其他的那些war或者jar模块重新定义他们。

只有当其中的war或者jar模块需要特别对待的时候(例如,打包一些额外的东西或者有一个特殊的文件设计布局)。那么在这个项目部分我们需要重新定义插件和重写或者添加一些其他的东西。但是这些不是我们目前的情况,我们希望我们的插件只定义一次,而且有一个公共的配置被我们所有的将要使用的项目的其他的模块继承。

根据上面的线索,你可以实验和尝试创建我们上面已经定义过的sample-services模块,或者等待文章的第三部分。现一个章节我们将快速的覆盖其他的模块的配置。

你可以在这里找到这篇文章对应的代码.

资源

原文链接:  javacodegeeks  翻译:  ImportNew.com  陈 显鹭
译文链接:  http://www.importnew.com/11472.html
转载请保留原文出处、译者和译文链接。 ]
相关文章
|
1月前
|
XML 前端开发 Java
SpringMVC入门到实战------2、SpringMVC创建实例Hello SpringMVC(maven+tomcat)
这篇文章是SpringMVC框架的入门教程,详细指导了如何在IDEA中使用Maven和Tomcat创建SpringMVC工程,包括添加依赖、配置web.xml、编写控制器、创建配置文件、配置Tomcat服务器以及进行基本的测试,展示了一个简单的Hello SpringMVC示例。
SpringMVC入门到实战------2、SpringMVC创建实例Hello SpringMVC(maven+tomcat)
|
1月前
|
设计模式 前端开发 Java
【前端学java】SpringBootWeb极速入门-分层解耦(03)
【8月更文挑战第13天】SpringBootWeb极速入门-分层解耦(03)
16 2
【前端学java】SpringBootWeb极速入门-分层解耦(03)
|
1月前
|
开发框架 前端开发 Java
【前端学java】SpringBootWeb极速入门-实现一个简单的web页面01
【8月更文挑战第12天】SpringBootWeb极速入门-实现一个简单的web页面01
50 3
【前端学java】SpringBootWeb极速入门-实现一个简单的web页面01
|
1月前
|
JSON 前端开发 Java
【前端学java】SpringBootWeb极速入门-请求参数解析(02)
【8月更文挑战第12天】SpringBootWeb极速入门-请求参数解析(02)
15 1
【前端学java】SpringBootWeb极速入门-请求参数解析(02)
|
22天前
|
算法 Java 开发者
Java 编程入门:从零到一的旅程
本文将带领读者开启Java编程之旅,从最基础的语法入手,逐步深入到面向对象的核心概念。通过实例代码演示,我们将一起探索如何定义类和对象、实现继承与多态,并解决常见的编程挑战。无论你是编程新手还是希望巩固基础的开发者,这篇文章都将为你提供有价值的指导和灵感。
|
23天前
|
存储 Java 程序员
Java中的集合框架:从入门到精通
【8月更文挑战第30天】在Java的世界里,集合框架是一块基石,它不仅承载着数据的存储和操作,还体现了面向对象编程的精髓。本篇文章将带你遨游Java集合框架的海洋,从基础概念到高级应用,一步步揭示它的奥秘。你将学会如何选择合适的集合类型,掌握集合的遍历技巧,以及理解集合框架背后的设计哲学。让我们一起探索这个强大工具,解锁数据结构的新视角。
|
25天前
|
Java 程序员 UED
Java中的异常处理:从入门到精通
【8月更文挑战第28天】在Java编程的世界里,异常处理是一块基石,它确保了程序的健壮性和可靠性。本文将通过深入浅出的方式,带你了解Java异常处理的基本概念、分类、以及如何有效地捕获和处理异常。我们将一起探索try-catch-finally结构的奥秘,并学习如何使用throws关键字声明方法可能会抛出的异常。此外,我们还会讨论自定义异常类的创建和使用,以及最佳实践。无论你是Java新手还是有一定经验的开发者,这篇文章都将为你提供宝贵的知识,帮助你编写出更加稳定和可靠的代码。
|
25天前
|
编解码 网络协议 Oracle
java网络编程入门以及项目实战
这篇文章是Java网络编程的入门教程,涵盖了网络编程的基础知识、IP地址、端口、通讯协议(TCP和UDP)的概念与区别,并提供了基于TCP和UDP的网络编程实例,包括远程聊天和文件传输程序的代码实现。
java网络编程入门以及项目实战
|
10天前
|
Java 程序员
Java中的异常处理:从入门到精通
在Java编程的世界中,异常处理是保持程序稳定性和可靠性的关键。本文将通过一个独特的视角—把异常处理比作一场“捉迷藏”游戏—来探讨如何在Java中有效管理异常。我们将一起学习如何识别、捕捉以及处理可能出现的异常,确保你的程序即使在面对不可预见的错误时也能优雅地运行。准备好了吗?让我们开始这场寻找并解决Java异常的冒险吧!
|
1月前
|
Java 持续交付 项目管理
Maven是一款基于Apache许可的项目管理和构建自动化工具,在Java开发中极为流行。
Maven是一款基于Apache许可的项目管理和构建自动化工具,在Java开发中极为流行。它采用项目对象模型(POM)来描述项目,简化构建流程。Maven提供依赖管理、标准构建生命周期、插件扩展等功能,支持多模块项目及版本控制。在Java Web开发中,Maven能够自动生成项目结构、管理依赖、自动化构建流程并运行多种插件任务,如代码质量检查和单元测试。遵循Maven的最佳实践,结合持续集成工具,可以显著提升开发效率和项目质量。
38 1

推荐镜像

更多