用Eclipse+Maven+Jetty构建Java Web开发环境(详细笔记)

(软件环境)

『系统』Windows 10 x64

『JAVA』JDK 1.8.0_91

『Eclipse』 Eclipse-oxygen

『Maven』 apache-maven-3.6.3

『Jetty』jetty-distribution-9.4.26

(配置过程)

一、JAVA和Maven的配置

(1)JDK的下载、配置(略)

(2)Maven的下载、配置:

  Maven是构建Java应用的优秀管理工具,是Apache软件基金会的顶级项目。其具有开发目录构建和管理,统一管理第三方依赖,编译,测试,打包,发布等功能。最大的特点要数第三方依赖管理了,因为其它功能都能从Ant中找到踪影。以往每个项目独立管理依赖,使得每个项目打包后都是巨大无比的,而真正的程序文件却没有多少,Maven接管第三方依赖后,我们的应用就只有程序文件了,没有了jar包轻巧很多,而统一的管理,使得我们可以随意获取jar资源。(摘抄自网络)

maven的作用:

  1)管理库文件及jar包

  2)编译java程序到class

  3)把class文件打包成jar文件或者war文件

  4)把打包好的jar、war文件部署到指定的服务器(tomcat、weblogic)

  5)ftp部署相关的文件指定的目录(跨服务器)

注意:Maven也是Java应用,所以必须提前下载JDK并配置好环境变量。

maven的配置:

  1) 登入官网下载Maven,下载地址

  2) 解压文件,配置环境变量

解压:

配置:

测试是否成功配置好maven

mvn -version

 

 可以看到,已经识别mvn命令了。做点简单的设置,就是第三方依赖下载的时候的存放位置,默认是在C盘用户目录的当前用户文件夹下(如C:用户Admin),在这里Maven会创建.m2文件夹,这里面就会存放下载的类库。我的如下:

如果不想这些类库放在C盘下,使用文本编辑器打开settings.xml文件,找到localRepository配置节,它是用来指定软件的安装位置,这是个可选项,如果不指定,将使用默认位置,如下图所示:

默认位置:

配置方式:新建repository文件夹

在settings.xml文件中,找到localRepository配置节,进行配置:

<localRepository>D:apache-maven-3.6.3
epository</localRepository>  

 

这样,那些疯狂下载的依赖就在这个位置下了,要留给足够大的空间,因为依赖下载很可能占用很大的一块空间。为什么?下载后去看看它的真实面目就知道了。

执行命令:

mvn archetype:generate

 下图在,疯狂下载以赖ing。。。。。太多了屏幕显示不全

我们就简单来看几个常用的就行,如internal类型。这里执行命令:

mvn archetype:generate -DarchetypeCatalog=internal

 执行该命令后,在控制台我们看到有如下的内容。(切记这个操作位置就是生成项目目录的位置)

这里,7是maven-archetype-quickstart,就是基本的JavaSE项目结构的构建,10是maven-archetype-webapp,用来创建简单的Java Web应用,我们先选择7来看看。

选择7之后,Maven提示输出groupId,就是我们的项目命名组成之一.artifactId用来标记项目名称,它们两个是联合使用的。而package定义的是包名.

我们在文件夹内就发现了mvndemo命名的项目文件夹。看看这个目录的结构,这是Maven为我们创建的,就是一个标准的格式:

根目录下有一个pom.xml,这就是项目的Maven配置文件,暂时不介绍其强大的功能,仅仅简单看一下实际应用,这是基础的目录结构.

Maven为我们创建了一个Hello World的小程序,我们来运行它。想要运行这个程序,那么就要编译,mvn的编译命令是:

mvn compile

 这样就为我们编译整个项目,这个操作要在mvndemo目录下完成。

BUILD SUCCESS:

此时mvndemo文件夹,多出一个target目录,这就是我们的类路径了,class文件就在下面。

这个操作的逆过程是mvn clean,顾名思义,就是清理,清理生成的可执行部分,仅留下源码部分,如下:

此时,Maven执行了Deleting操作,删除了target目录。如果想执行程序,是需要class文件或jar文件的,前面的mvn compile命令仅仅是编译,而没有对应用进行打包发布,而mvn package命令可以将应用打包(jar或war等),那么我们就来为项目打包发布:

这个过程,Maven执行了很多操作,有日志可以细看,其中还有测试过程,这是JUnit的测试。其实我们创建项目时,Maven为我们引入的第一个依赖就是JUnit。下面我们来执行jar文件,运行程序。(当然执行class是一样的效果)

java -cp target/mvndemo-1.0.jar app.App

 

二、Eclipse+Maven+Jetty配置过程

目前为止我们还是手工命令行方式执行程序的,没有和IDE结合,其实Maven天生就对Eclipse做了集成,我们使用mvn eclipse:eclipse就得到了一个Eclipse的项目结构,在Eclipse中使用import功能就能直接导入到IDE中了。我们来看一下这个过程:

此时的mvndemo就是Eclipse项目格式的了,出现了.project和.classpath文件。

我们在Eclipse中引入这个项目,此时的Eclipse没有安装Maven插件,不能自动运行Maven命令,我们来安装Maven的Eclipse插件M2E。

###方法一:安装Maven的Eclipse插件M2E(离线包)

  1)下载m2eclipse插件包到本地;

  2) 解压,会出现features和plugins文件夹;

  3)把这个features和plugins文件夹下面的jar包放到Eclipse安装目录下对应的文件夹里,然后重启Eclipse,在Eclipse的window ->preferences 选项里可以看到Maven就成功了。

  (注意:关于使用离线包偶尔暴漏出来的弊端,这篇文章写的很清楚:http://www.blogjava.net/landon/archive/2014/12/02/420911.html

###方法二:需要连网,而且时间也会特别长!!!

官网有详细的介绍,请访问:https://www.eclipse.org/m2e/

通过链接选择你要安装的m2e的版本:https://www.eclipse.org/m2e/m2e-downloads.html

检验maven插件是否安装成功:
1) 点击【Help】-【 About Eclipse IDE】-【Installation Details】,检查否存在Maven Integration for Eclipse(Required),如下图:

2) 检查eclipse是否可以创建Maven项目了,【File】->【New】->【Other】

到此Maven安装完成了。

在eclipse中配置maven:

1) 打开Eclipse点击window>prferences之后会弹出

2) 点击确定之后会出现:

3) 点击finish之后:

这个时候你就把maven装在你的Eclipse中了,但是我们知道,maven是一个方便我们管理jar包的工具,我们需要用到的jar包都是从maven的中央仓库里下载的,但是我们不需要每次都需要去本地仓库里下载,当我们下载过一次之后就可以在我们的本地仓库中导入jar包,那么,怎么连接本地仓库呢?

*连接本地仓库

第一步:你首先需要找到你的maven解压文件夹,然后打开conf子文件夹,然后编辑settings.xml(上面做过了)

第二步:回到eclipse中点击window再点击preferences

Jetty的下载、配置

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

  1)Jetty更轻量级。这是相对Tomcat而言的。

  由于Tomcat除了遵循Java Servlet规范之外,自身还扩展了大量JEE特性以满足企业级应用的需求,所以Tomcat是较重量级的,而且配置较Jetty亦复杂许多。但对于大量普通互联网应用而言,并不需要用到Tomcat其他高级特性,所以在这种情况下,使用Tomcat是很浪费资源的。这种劣势放在分布式环境下,更是明显。换成Jetty,每个应用服务器省下那几兆内存,对于大的分布式环境则是节省大量资源。而且,Jetty的轻量级也使其在处理高并发细粒度请求的场景下显得更快速高效。

  2)Jetty更灵活,体现在其可插拔性和可扩展性,更易于开发者对Jetty本身进行二次开发,定制一个适合自身需求的Web Server。

  相比之下,重量级的Tomcat原本便支持过多特性,要对其瘦身的成本远大于丰富Jetty的成本。用自己的理解,即增肥容易减肥难。
  3)然而,当支持大规模企业级应用时,Jetty也许便需要扩展,在这场景下Tomcat便是更优的。
  总结:Jetty更满足公有云的分布式环境的需求,而Tomcat更符合企业级环境。

用离线的方法,安装一下run-Jetty-run插件:

第一步:我下载的是:runjettyrun_1.3.2.jar
第二步:将jar包复制到eclipse安装目录下的dropins文件夹里;
第三步:如果你的eclipse事先已经打开,那就重启一次eclipse;

检验插件是否安装成功:

三、创建Web项目并导入Eclipse中,在Jetty容器中运行程序

方法一:

按照上面的方法cmd创建再导入到Eclipse中
1) cmd 呼出命令行窗口
2) mvn archetype:generate -DgroupId=com.zhou -DartifactId=todaydemo -DarchetypeArtifactId=maven-archetype-webapp -Dversion=1.0(请将“com.zhou”替换成你的项目开发组,“todaydemo”换成你的项目名称)
3) cd 到你的项目目录
4) mvn eclipse:eclipse(使用这条指令使得项目成为eclipse能够导入的格式)
5) 用Eclipse的File->Import导入该项目根目录


上面几部如果记不住可以写一个批处理的脚本方便以后建立项目:

@echo off
set /p project_name=Name of the new project: 
set /p producer_name=Name of the producer: 
mvn archetype:generate -DgroupId=%producer_name% -DartifactId=%project_name% -DarchetypeArtifactId=maven-archetype-webapp -Dversion=1.0
cd %project_name%
mvn eclipse:eclipse
echo [Press any key to exit]
pause>nul
exit

 写入记事本保存成bat格式文件粘贴到workspace的目录运行即可。

方法二:

直接在Eclipse中创建,步骤如下:(前提:已经安装了本地maven库和eclipse中的maven插件)

(一)创建Maven项目

(1)菜单New——>Project…->Maven Project

(2)选择Next

 (3)选择下一步,在Archetype中选择maven-archetype-webapp

(4)点击下一步

Group Id 中输入项目的基本包名。

Artifact Id 中输入项目名。

Version 中的值默认就行,不进行选择。

Package 中写的是默认生成的一个包名,不写也可以。

如下图所示,在Eclipse中生成的目录结构:

(二)Maven项目配置

(1)在pom.xml 里面build 标签下添加 maven编译插件。

(截图)

(2)在pom.xml中添加Jetty依赖。

(截图)

(3)添加缺少的目录并指定输出路径

Maven规定,必须创建以下几个包,并且分别对应相应的输出路径

  src/main/resources

  src/main/java

  src/test/resources

  src/test/java

默认仅创建了src/main/resources文件夹,需要手动创建其他三个文件夹

右键项目----->Properties----->Java Build Path----->Source,点击Add Folder… 添加缺少的目录,并将src/test/resources和src/test/java的输出目录改为 target/test-classes (双击Output folder)进行更改。

(未完待续。。。。)

原文地址:https://www.cnblogs.com/1693977889zz/p/12297233.html