Ubuntu16.04+IDEA社区版+Maven+Tomcat的安装及运行Java Web项目
本文是Ubuntu16.04+IDEA社区版+Maven+Tomcat的安装及运行Java Web项目使用,请注意系统和所下载软件的版本的区别,因此本文的图文与几年前(18/19年)的很多博客在具体步骤上有一定出入。同理,你安装时的部分细节也会和网上博文里显示的会有部分不一致,但是基本原理步骤都是没有变化的,按原理步骤来应该都是能装上的。
由于Linux中/opt目录用来安装附加软件包,因此本文的软件都统一放在/opt目录下。
1、安装IDEA社区版
1)IDEA下载地址:https://www.jetbrains.com/idea/download/#section=linux
我的系统是ubuntu16.04,下载的是Linux的社区版(Community)。我没有选择最新2021年的,所以我点击的是左边的Other versions,下载的是2020版的。
1)下载完之后,到/Downloads目录下解压所下载的IDEA包:
tar -zxvf ideaIC-2020.3.4.tar.gz
3)将解压后的包移动到/opt目录下
3.1 首先新建一个idea文件夹
sudo mkidr /opt/idea
3.2 然后移动解压后的文件夹
sudo mv idea-IC-203.8084.24 /opt/idea/
4) 进入IDEA的bin目录下,通过 ./idea.sh 运行idea,运行及使用可以参考其他博客,基本就是下一步,操作比较简单
cd /opt/idea/idea-IC-203.8084.24/bin/
./idea.sh
2、安装MAVEN
步骤基本和安装IDEA一致,最后还是安装到/opt目录下。
1)去maven官网下载linux版的Maven,下载的是Binary tar.gz archive类型的:https://maven.apache.org/download.cgi
2)下载完之后,到/Downloads目录下解压所下载的Maven:
tar -zxvf apache-maven-3.8.3-bin.tar.gz
3)将解压后的包移动到/opt目录下
3.1 首先新建一个maven文件夹
sudo mkidr /opt/maven
3.2 然后移动解压后的文件夹
sudo mv apache-maven-3.8.3 /opt/maven/
4)配置maven环境变量
首先打开用户的bashrc环境变量文件
sudo vim ~/.bashrc
在文件的最后添加:
#set maven enviroment
export MAVEN_HOME=/opt/maven/apache-maven-3.8.3
export PATH=${MAVEN_HOME}/bin:${PATH}
然后保存(1)esc2):wq3)回车),并启动该配置文件生效
source ~/.bashrc
5)查看是否安装配置成功
koping@koping-HP:/opt/idea/idea-IC-203.8084.24/bin$ mvn -v
Apache Maven 3.8.3 (ff8e977a158738155dc465c6a97ffaf31982d739)
Maven home: /opt/maven/apache-maven-3.8.3
Java version: 16.0.2, vendor: Oracle Corporation, runtime: /opt/java/jdk-16.0.2
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.15.0-142-generic", arch: "amd64", family: "unix"
koping@koping-HP:/opt/idea/idea-IC-203.8084.24/bin$
6)修改maven源为阿里云,配置仓库为我们maven的路径仓库
6.1 首先新建一个保存下载jar包的仓库路径
sudo mkidr /opt/maven/apache-maven-3.8.3/repo
6.2 打开maven的配置文件:
sudo vim /opt/maven/apache-maven-3.8.3/conf/settings.xml
6.3 修改仓库为我们自建的仓库路径
<localRepository>/opt/maven/apache-maven-3.8.3/repo</localRepository>
6.4 修改下载源为阿里云,这样比下载外网的jar包要快很多。
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
好的,到这里maven的安装及配置已经完成。现在来谈论一个问题,我们在第4步中,为什么配置环境变量要放到~/.bashrc中呢?在其他博文中,也会看到有配置到/etc/profile中,那么到底应该配置到哪里呢?这2个之间有什么区别么?
1) /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。可以通过命令source /etc/profile立即生效。
2)/etc/bashrc或/etc/bash.bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件将被读取。修改这个文件不用重启,重新打开一个bash即可生效。
注意,上面2个都是针对所有用户的。只是profile是仅在登录时加载一次,而bashrc是每打开一次bash shell都将会加载。
3)~/.bash_profile或~/.profile: 此文件类似于/etc/profile,只是/etc/profile对所有用户生效,而它只对当前用户生效。
4)~/.bashrc::此文件类似于/etc/bashrc,只是/etc/bashrc对所有用户生效,而它只对当前用户有效。通过命令source ~/.bashrc立即生效。
所以3,4和1,2的区别主要是他们只对当前用户有效。
3、安装Tomcat、创建并运行web项目
1)官网下载tar.gz版本的tomcat:https://tomcat.apache.org/download-10.cgi
我下载的是Tomcat10版本的:
2)解压并移动到/opt目录下(已经是装第3个软件了,现在应该是轻车熟路了吧)
2.1 解压tomcat包
tar -zxvf apache-tomcat-10.0.12.tar.gz
2.2 在/opt目录下新建tomcat文件夹目录
sudo mkdir /opt/tomcat
2.3 将解压后的包移动到/opt/tomcat目录下
sudo mv apache-tomcat-10.0.12 /opt/tomcat/
3)tomcat目录结构一览
3.1 bin目录:startup.sh(startup.bat)用来启动tomcat,关闭tomcat使用shutdown.sh(shutdown.bat)。
3.2 conf目录:server.xml:配置整个服务器信息。例如修改端口号等
3.3 webapps目录:存放web项目的目录,其中每个文件夹都是一个项目。如果这个目录下已经存在了目录,那么都是tomcat自带的项目。其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。
3.4 lib目录:tomcat所需要的jar包都需要部署在文件夹下面。
4)部署及使用tomcat
4.1 到bin目录下启动tomcat
cd /opt/tomcat/apache-tomcat-10.0.12/bin/ # 先进入到bin目录下
./startup.sh # 运行tomcat
我下载的是tomcat,如下图显示,Tomcat started,说明启动成功了。
4.2 tomcat的默认端口号是8080,因此访问首页可以得到tomcat的首页:http:127.0.0.1:8080
4.3 到这里,我们就已经成功启动并访问了tomcat的服务。
那么请问访问http:127.0.0.1:8080,为什么会得到该页面呢?
因为该页面实际访问的全路径是:http:127.0.01:8080/index.jsp
实际页面访问的路径一般是http:ip:port/项目名/资源路径
此时的ip地址就是本机地址:127.0.0.1
端口号port是:8080
项目名是ROOT,但是tomcat自带的ROOT可以省略。
4.4 那我们怎么部署自己的服务呢?
44.1 新建web项目
根据4.3中的介绍,最简单的方式,我们可以先复制ROOT目录,并重命名为ourwebapp,现在ourwebapp就是我们的项目名。
4.4.2 修改端口号为8081
根据3.2的介绍,我们修改conf目录中server.xml文件中Connector的端口号由8080改为8081:
sudo vim conf/server.xml
4.4.3 在ourwebapp目录下新建静态资源:hello1.html
<html>
<body>
<h2>Hello World!</h2>
</body>
</html>
4.4.4 在ourwebapp目录下新建动态资源:hello2.jsp
<%@ page%>
<html>
<body>
<h2>Hello World!</h2>
<h3>${header["user-agent"]}</h3>
</body>
</html>
新建的静态资源和动态资源结构如下:
4.4.5 访问静态资源hello1.html:
http://127.0.1.1:8081/ourwebapp/hello1.html
4.4.6 访问动态资源hello2.jsp:
http://127.0.1.1:8081/ourwebapp/hello2.jsp
5)配置外部应用
在第4步中,我们的应用(ourwebapp)都是部署在tomcat的webapps目录下的,那么如果我有一个项目放在服务器的其他目录下呢,这个时候tomcat怎么部署服务呢?
如下图,我们将第4步中创建的ourwebapp文件夹复制一份到其他目录(/home/koping/wxp/test):
5.1 首先需要配置tomcat的conf目录的server.xml文件,在host文件夹里面配置外部应用的信息
首先进入conf目录,并打开server.xml文件
cd /opt/tomcat/apache-tomcat-10.0.12/conf/
sudo vim server.xml
然后在Host元素中添加Context元素:
<Context path="ourwebapp2" docBase="/home/koping/wxp/test/ourwebapp"/>
path:项目名,所以等会的访问路径是http://localhost:8081/ourwebapp2/hello2.html
docBase:外部应用项目在服务器上的实际路径地址,可以让tomcat找到这个目录。
5.2 访问外部应用
配置好之后,我们重启服务器之后,然后访问刚刚设置的项目ourwebapp2下的hello1.html和hello2.jsp
如上,其实部署外部应用,仅仅是告诉下tomcat,你的web项目具体在哪里(docBase),然后项目名叫什么(path),其余原理和第4步基本完全一致。
到这里,我们自己的web项目ourwebapp,以及外部目录的ourwebapp2项目都已经可以访问和运行了。当然后续就不是简单的复制ROOT目录了,后面我们就要结合IDEA+Maven+Tomcat来创建真正的webapp项目了。当然基本的原理流程和上面介绍的方式应该是一致的。
通过IDEA+Maven创建web项目,以及在IDEA中使用tomcat部署服务可以参考下一篇博文:Ubuntu16.04+IDEA社区版+Maven创建及运行Java Web项目