使用Maven构建JavaWeb项目(文字版)

使用Maven构建JavaWeb项目(文字版)

原文:https://www.cnblogs.com/xdp-gacl/p/4240930.html

创建Jave Project

1、创建项目

使用 mvn archetype:generate 命令,如下所示:

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-WebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

参数解释:
(待补充)

如果长时间没有创建好,可参考以下方法:

使用"mvn archetype:generate"命令创建项目时要特别长的时间才能够将项目创建好

原因是创建项目过程中会下载这个文件,而访问网络上这个文件非常耗时http://repo1.maven.org/maven2/archetype-catalog.xml

问题解决办法
1.直接下载archetype-catalog.xml文件,放到本地的apache-maven目录中。
2.在使用mvn archetype:generate命令时,加上-DarchetypeCatalog=local,以替换网络上的catalog.xml。

具体参考:http://9leg.com/maven/2015/02/01/why-is-mvn-archetype-generate-so-low.html

BUILD SUCCESS就表示项目构建成功,当在前用户目录下(如C:\Users\Administrator)下构建了一个Java-web Project叫做my-WebApp。

2、添加目录
my-WebApp中目前只有src/main/resources目录和一个pom.xml文件,
因此还需要手动在src/main 目录下创建一个 java目录,在src目录下创建一个test目录,并在其中创建java和resources目录。

接着我们就可以将创建好的JavaWeb导入Eclipse中进行开发了。

2、手动创建resources目录

但实际项目开发中我们一般都会有配置文件,例如log4j.properties,所以我们还需要手动在main目录和test目录分别创建resources目录(用于存放测试时用到的配置文件)。

然后我们就可以将创建好的myapp项目导入到Eclipse中进行开发了。

3、pom.xml文件说明

  通过Maven构建的JavaProject,在项目的根目录下都会存在一个pom.xml文件,进入myapp目录,可以看到有一个pom.xml文件,这个文件是Maven的核心。
  
pom.xml文件的节点元素说明:

<project>  pom文件的顶级节点
<modelVersion> object model版本,对Maven2和Maven3来说,只能是4.0.0 
<groupId>   项目创建组织的标识符,一般是域名的倒写
<artifactId>  定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目
<version>  当前项目的版本,SNAPSHOT,表示是快照版本,在开发中

<packaging> 打包的方式,有jar、war、ear等
<name>  项目的名称
<url>  项目的地址

<properties>  属性配置,比如:<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<dependencies> 构建项目依赖的jar

其中由groupId、artifactId和version唯一的确定了一个项目坐标

使用Maven打包发布Web项目

  Maven帮我们创建的JavaWeb项目是一个空的项目,只有一个index.jsp页面,我们使用Maven将Web项目打包发布运行。

  在命令行切换到my-WebApp目录,执行:`使用Maven打包发布Web项目

  Maven帮我们创建的JavaWeb项目是一个空的项目,只有一个index.jsp页面,我们使用Maven将Web项目打包发布运行。

  在命令行切换到myWebApp目录,执行:mvn package,构建成功后,myWebApp目录目录下多了一个target目录,在这个目录下会打包成myWebApp目录.war,把这个war包拷贝到Tomcat的发布目录下就可以运行了,构建成功后,my-WebApp目录目录下多了一个target目录,在这个目录下会打包成myWebApp目录.war,把这个war包拷贝到Tomcat的发布目录下就可以运行了。
  
提示:
将 my-WebApp.war 复制到tomcat安装目录下的webapps目录下,
然后在tomcat安装目录的bin目录下,Shift+鼠标右键 进入PowerShell,输入.\startup.bat启动tomcat
最好浏览器访问:http://localhost:8080/my-WebApp/
  

除了使用Tomcat服务器运行Web项目之外,我们还可以在Web项目中集成Jetty发布运行,首先在pom.xml文件中配置Jetty插件,如下:

<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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-WebApp</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>myWebApp Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <build>
    <finalName>myWebApp</finalName>
     <pluginManagement>
        <!--配置Jetty-->
          <plugins>
            <plugin>
             <groupId>org.mortbay.jetty</groupId>   
             <artifactId>maven-jetty-plugin</artifactId>
            </plugin>
          </plugins>
    </pluginManagement>
  </build>
</project>

打开命令行窗口,切换到myWebApp目录,然后执行:mvn jetty:run启动Jetty服务器。

Jetty服务器启动成功,使用的是8080端口。

Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。

Maven创建项目的命令说明

mvn archetype:generate  固定写法

-DgroupId 组织标识(包名)

-DartifactId 项目名称

-DarchetypeArtifactId 指定ArchetypeId
maven-archetype-quickstart 创建一个Java Project
maven-archetype-webapp 创建一个Web Project

-DinteractiveMode  是否使用交互模式

  archetype是mvn内置的一个插件,generate任务可以创建一个java项目骨架,DgroupId是软件包的名称,DartifactId是项目名,DarchetypeArtifactId是可用的mvn项目骨架,目前可以使用的骨架有:

maven-archetype-archetype
maven-archetype-j2ee-simple
maven-archetype-mojo
maven-archetype-portlet
maven-archetype-profiles (currently under development)
maven-archetype-quickstart
maven-archetype-simple (currently under development)
maven-archetype-site
maven-archetype-site-simple
maven-archetype-webapp

  每一个骨架都会建相应的目录结构和一些通用文件,最常用的是maven-archetype-quickstartmaven-archetype-webapp骨架。
  
  maven-archetype-quickstart骨架是用来创建一个Java Project,
  maven-archetype-webapp骨架是用来创建一个JavaWeb Project。

  不得不说,Maven的确是一个很好的项目构建工具。掌握好Maven对于项目开发是非常有帮助的。

posted @ 2021-04-03 22:48  你是真的菜啊  阅读(417)  评论(0编辑  收藏  举报