1、Tomcat部署项目的方式
1.1、将web
项目整个文件夹,放在%TOMCAT_HOME%/webapps
目录中,文件夹名作为ContextPath

-
CRM_07:war exploded
:项目打包内容 -
Output directory
:项目的打包路径 -
Output Layout
:为具体的打包内容
1、选择Build
=> Build Artificats...
=> CRM_07:war exploded
=> Build

2、生成打包产物:
CRM_07-1.0-SNAPSHOT
,将打包产物拷贝到 tomcat
的webapp
目录下,并修改目录名称为CRM_07
(随便起个名字作为项目名称)。
3、
cd
到bin
目录终端./startup.sh
启动tomcat
。4、在浏览器中输入
localhost:8080/CRM_07
即可成功启动项目
1.2、将web
项目打包成war
,放在%TOMCAT_HOME%/webapps
目录中,war
文件名作为ContextPath

1、
war
包的本质是zip
包,CRM_07.war
依赖CRM_07:war exploded
2、选择
Build
=> Build Artificats...
=> CRM_07:war
=> Build

3、打包的产物:
CRM_07-1.0-SNAPSHOT.war
4、将
war
包拷贝到webapp
目录下面改名为CRM_07.war
5、启动
tomcat
,CRM_07.war
包会被自动解压成CRM_07
文件夹6、在浏览器中输入
http://localhost:8080/CRM_07/customer/list
可正常访问项目
1.3、 在%TOMCAT_HOME%/conf/server.xml
的Host
标签中添加以下内容(ContextPath
是path
属性值)
1、<Context docBase="项目路径" path="/crm7" />
2、启动tomcat
,CRM_07.war
包会被自动解压成CRM_07
文件夹,在浏览器中输入http://localhost:8080/CRM_07/customer/list
可正常访问项目

1.4、在%TOMCAT_HOME%/conf/Catalina/localhost
中新建一个xml
文件,xml
文件名作为ContextPath
1、<Context docBase="项目路径" />
2、启动tomcat
,CRM_07.war
包会被自动解压成CRM_07
文件夹,在浏览器中输入http://localhost:8080/CRM_07/customer/list
可正常访问项目
2、Maven
Apache Maven,主要用于自动化构建和管理Java
项目,基于项目对象模型(POM
,Project Object Model
)的概念
2.1、创建Maven项目
1、官网下载Maven,并配置好环境变量
2、修改maven
配置,修改apache-maven-3.8.5/conf/setting.xml
文件
修改maven
仓库的下载地址
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
| Default: ${user.home}/.m2/repository| 默认下载地址
<localRepository>/path/to/local/repo</localRepository>
-->
<localRepository>${user.home}/development/java/repository</localRepository>
修改下载镜像
<mirror>
<id>aliyun</id>
<name>aliyun</name>
<mirrorOf>central</mirrorOf>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
2.1.1、终端创建
1、终端输入命令:sudo mvn archetype:generate
,会让我们选择项目类型默认值是7
,maven-archetype-quickstart
,是一个普通的Java
项目;如果是希望创建一个web
项目,应该输入10
,maven-archetype-webapp
;输入groupId
、artifactId
、version
、package
,最后输入y
表示确认,项目创建完毕。
或者直接输入命令:
mvn archetype:generate -DgroupId=com.mj.maven -DartifactId=helloworld -Dversion=1.0-RELEASE -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-quickstart
2、创建项目完成后,在终端输入命令:sudo mvn compile
,终端报错,提示需要修改项目的JDK
版本。
3、在pom.xml
中添加属性(每个maven
项目都要添加)
<properties>
<maven.compiler.source>16</maven.compiler.source>
<maven.compiler.target>16</maven.compiler.target>
<maven.compiler.compilerVersion>16</maven.compiler.compilerVersion>
</properties>
4、mvn clean
:清除target
文件夹中编译后的文件
5、sudo mvn test
:执行test
6、sudo mvn package
:对maven
进行打包
2.1.2、IntelliJ IDEA
创建
1、New Project...
选择Maven
,选择maven-archetype-quickstart

2、
Maven home path
选择下载到本地的maven
包、User setting file
选择本地maven
包里的settting.xml
文件、groupId
修改为自己项目的包名称、点击Finish
创建完成
3、在
maven
导航栏中执行命令行,需要修改IntelliJ IDEA
的配置,选择Preference
=>Build,Execution,Deployment
修改maven
配置
2.2、Maven项目的目录结构
Maven
使用”约定优于配置“的思想(Convention over Configuration
),创建项目时,Maven
将创建默认项目架构,开发人员只需要相应地放置文件
1、Maven
的项目架构


2、
pom.xml
pom.xml
是Maven
项目的核心配置文件,根元素是project

groupId
、artifactId
、version
,组成一个Maven
坐标,能够确定唯一的一个项目3、仓库查询:sonatype、MVNrepository
2.3、构建生命周期
1、构建生命周期,描述了构建的过程。Maven
内置了3个构建生命周期
clean
(清理)、default
(默认,重点关注)、site
(站点)
2、构建生命周期是由phase
(阶段)组成
phase
可以跟plugin goal
(插件目标)绑定
plugin goal
代表一个特定的任务
一旦某个phase
被执行,就会执行其绑定的所有goal
3、通过命令mvn
插件:help
可以查看插件包含的所有goal
比如mvn archetype:help

4、
default
生命周期由以下表中的phase
组成
使用命令
mvn package
就会按顺序执行validate
、compile
、test
、package
阶段5、常用命令
mvn archetype:generate
:创建Maven
项目mvn clean
:清楚target
mvn clean package
:先执行clean
,在执行package
2.4、生命周期分析
1、maven
菜单栏,主要由Lifecycle
(生命周期)和Plugins
(插件)组成,Lifecycle
(生命周期)里面的phase
(阶段)是和Plugins
(插件)的goal
(目标)绑定。其中compiler
插件是由compiler:compile
、compiler:help
、compiler:testCompile
三个目标绑定。

2、双击
compile
阶段,会执行resources:resources
和compiler:compile
两个目标。相当于执行命令:
mvn resources:resources compiler:compile

2.5、dependency中scope的取值
compile
:默认。编译依赖关系在所有类路径中均可使用。此外这些依赖项会传递到相关项目
provided
:仅在编译和测试类路径上可用,并且不可传递。希望JDK
容器在运行时提供它
runtime
:依赖关系不是编译所必须的,而是运行所必须的。它在运行时和测试类路径中,但不在编译类路径中。
test
:依赖关系对于正常使用,该应用程序不是必须的。并且仅在测试编译和执行阶段可用。它不是可传递的。
system
:必须显示提供jar
的位置(可以通过systemPath
标签指定),不会去 Maven
仓库中查找。
网友评论