JAVA开发环境搭建
对应视频链接
一、maven
1、 Maven介绍
Maven 是 Apache 软件基金会的一个开源项目,是一个优秀的项目构建工具,它用来帮助开发者管理项目中的 jar,以及 jar 之间的依赖关系、完成项目的编译、测试、打包和发布等工作。Maven 使用了一个标准的目录结构在不同开发工具中也能实现项目结构的统一。Maven提供了清理,编译,测试,安装,打包,发布等命令可以让我们更加方便的去构建项目,同时采用pom.xml来导入依赖,可以自动下载jar,以及其所依赖jar,无需手动下载,拷贝jar到项目中,大大解放了程序员的劳动力。
使用Maven可以为我们完成很多相应的功能:清理代码,自动编译,完成测试,生成站点报告,进行打包(jar,war),项目部署。
•清理代码:相当于我们运行clear的效果•自动编译:可以较为方便的实现对项目的管理•打包:普通项目打jar包,web项目打成war包•项目部署:只需一行命令就能实现项目的部署
2、maven安装
(1)、maven下载
下载地址:https://maven.apache.org/download.cgi
windwos 直接下载 apache-maven-3.9.3-bin.zip 即可,解压后如下:
各目录作用如下:
•bin: maven 命令•boot: maven 引导程序,如类加载器等•conf: maven 配置文件,如 setting.xml 文件•lib: maven 本身运行所需的 jar 包
(2)、环境变量配置
配置 MAVEN_HOME ,变量值即为 maven 安装的路径(bin 目录的上级目录)
将MAVEN_HOME 添加到Path系统变量
打开命令行,输入 mvn –v 命令,命令执行成功则 maven 安装成功
3、maven仓库配置
maven仓库分类
•本地仓库: 位于自己计算机中的仓库, 用来存储从远程仓库或中央仓库下载的插件和 jar 包,•远程仓库: 需要联网才可以使用的仓库,阿里提供了一个免费的maven 远程仓库。•中央仓库: 在 maven 软件中内置一个远程仓库地址 http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,是由 Maven 团队自己维护,里面存储了非常全的 jar 包,包含了世界上大部分流行的开源项目构件
(1)、配置本地仓库
在maven安装目录中conf文件夹存在 settings.xml 文件,此文件可进行本地仓库配置
添加配置D:apache-maven-3.8.6repository,其中D:apache-maven-3.8.6repository为自定义存储目录
(2)、配置远程仓库
仍在之前 settings.xml 文件中进行配置
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>
https://maven.aliyun.com/repository/public
</url>
<mirrorOf>central</mirrorOf>
</mirror>
注:
国内maven仓库镜像地址
阿里云:https://maven.aliyun.com/repository/public
中央仓库:https://repo1.maven.org/maven2/
网易:http://maven.netease.com/repository/public/
华为云:https://repo.huaweicloud.com/repository/maven/
tencent:https://mirrors.cloud.tencent.com/repository/maven/
中国科技大学:http://mirrors.ustc.edu.cn/maven/maven2/
南京大学:http://maven.nju.edu.cn/repository/
清华大学:https://repo.maven.apache.org/maven2/
北京理工大学:http://mirror.bit.edu.cn/maven/
东软信息学院:https://mirrors.neusoft.edu.cn/maven2/
中国科学院开源协会:http://maven.opencas.cn/maven/
北京交通大学:http://maven.bjtu.edu.cn/maven2/
4、idea中maven配置
打开settings ,选择Build ,Execution这个选项的Maven选项即可
5、Maven 依赖
<project>
<dependencies>
<dependency>
<groupId></groupId>
<artifactId></artifactId>
<version></version>
<type>...</type>
<scope>...</scope>
<optional>...</optional>
<exclusions>
<exclusion>
<groupId>...</groupId>
<artifactId>...</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>
配置说明:
•dependencies:一个 pom.xml 文件中只能存在一个这样的标签,是用来管理依赖的总标签。•dependency:包含在 dependencies 标签中,可以有多个,每一个表示项目的一个依赖。•groupId,artifactId,version(必要):依赖的基本坐标,对于任何一个依赖来说,基本坐标是最重要的,Maven 根据坐标才能找到需要的依赖。我们在上面解释过这些元素的具体意思,这里就不重复提了。•type(可选):依赖的类型,对应于项目坐标定义的 packaging。大部分情况下,该元素不必声明,其默认值是 jar。•scope(可选):依赖的范围,默认值是 compile。•optional(可选):标记依赖是否可选•exclusions(可选):用来排除传递性依赖,例如 jar 包冲突
依赖示例:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
二、Tomcat
1、Tomcat安装
下载地址:https://tomcat.apache.org/
解压后如下:
各目录功能如下:
•bin: 存放一些二进制的文件, 例如Tomcat常用的 启动脚本: startup.bat或startup.sh 关闭脚本: shutdown.bat 或 shutdown.sh 等等•conf: 存放的是Tomcat的配置文件, 例如最常用的 server.xml 如果需要修改Tomcat的端口(默认端口是8080, 可以改成自己喜欢的如9090, 8888, 9999, 9070 等)就在这里修改•lib: 存放的是全局的jar包•logs: 存放的是Tomcat的日志, 如果Tomcat出错什么的,就需要在这里的日志中查找问题•temp: 存放的是临时性的文件•webapps: 存放的是Java的Web项目, 要部署的项目就需要放在这个目录当中•work: 存放的是由JSP代码翻译的Java代码, 以及编译的.class文件
2、Tomcat启动
启动脚本: tomcat安装目录binstartup.bat或startup.sh
启动成功后访问 localhost:8080 如下启动成功
3、Tomcat配置
Tomcat 服务器的配置主要集中于 tomcat/conf 下的 catalina.policy、 catalina.properties、context.xml、server.xml、tomcat-users.xml、web.xml 文件。
1、server.xml
server.xml 是tomcat 服务器的核心配置文件,包含了Tomcat的 Servlet 容器 (Catalina)的所有配置。由于配置的属性特别多,我们在这里主要讲解其中的一部分重 要配置。
<Server port="8005" shutdown="SHUTDOWN">
</Server>
•port : Tomcat 监听的关闭服务器的端口。•shutdown:关闭服务器的指令字符串。•Server内嵌的子元素为 Listener、GlobalNamingResources、Service。
默认配置的5个Listener 的含义
<!‐‐ 用于以日志形式输出服务器 、操作系统、JVM的版本信息 ‐‐>
<Listener className="org.apache.catalina.startup.VersionLoggerListener"
/>
<!‐‐ 用于加载(服务器启动) 和 销毁 (服务器停止) APR。如果找不到APR库, 则会
输出日志, 并不影响Tomcat启动 ‐‐>
<Listener className="org.apache.catalina.core.AprLifecycleListener"
SSLEngine="on" />
<!‐‐ 用于避免JRE内存泄漏问题 ‐‐>
<Listener
className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<!‐‐ 用户加载(服务器启动) 和 销毁(服务器停止) 全局命名服务 ‐‐>
<Listener
className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"
/>
<!‐‐ 用于在Context停止时重建Executor 池中的线程, 以避免ThreadLocal 相关的内
存泄漏 ‐‐>
<Listener
className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
2、Service
该元素用于创建 Service 实例,默认用org.apache.catalina.core.StandardService。默认情况下,Tomcat 仅指定了Service 的名称, 值为 “Catalina”。Service 可以内嵌的 元素为 :Listener、Executor、Connector、Engine,其中 :Listener 用于为Service 添加生命周期监听器, Executor 用于配置Service 共享线程池,Connector 用于配置 Service 包含的链接器, Engine 用于配置Service中链接器对应的Servlet 容器引擎。一个Server服务器,可以包含多个Service服务。
<Service name="Catalina">
...
</Service>
3、Executor
默认情况下,Service 并未添加共享线程池配置。如果我们想添加一个线程池, 可以在 下添加如下配置:
<Executor name="tomcatThreadPool"
namePrefix="catalina‐exec‐"
maxThreads="200"
minSpareThreads="100"
maxIdleTime="60000"
maxQueueSize="Integer.MAX_VALUE"
prestartminSpareThreads="false"
threadPriority="5"
className="org.apache.catalina.core.StandardThreadExecutor"/>
4、Connector
Connector 用于创建链接器实例。默认情况下,server.xml 配置了两个链接器,一个支 持HTTP协议,一个支持AJP协议。因此大多数情况下,我们并不需要新增链接器配置, 只是根据需要对已有链接器进行优化。
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
属性说明:
•port:端口号,Connector 用于创建服务端Socket 并进行监听, 以等待客户端请求 链接。如果该属性设置为0,Tomcat将会随机选择一个可用的端口号给当前Connector 使用。•protocol :当前Connector 支持的访问协议。默认为 HTTP/1.1 , 并采用自动切换 机制选择一个基于 JAVA NIO 的链接器或者基于本地APR的链接器(根据本地是否含有 Tomcat的本地库判定)。•connectionTimeOut : Connector 接收链接后的等待超时时间, 单位为 毫秒。-1 表 示不超时。•redirectPort:当前Connector 不支持SSL请求, 接收到了一个请求, 并且也符合 security-constraint 约束, 需要SSL传输,Catalina自动将请求重定向到指定的端口。•executor :指定共享线程池的名称, 也可以通过maxThreads、minSpareThreads 等属性配置内部线程池。•URIEncoding : 用于指定编码URI的字符编码, Tomcat8.x版本默认的编码为 UTF-8 , Tomcat7.x版本默认为ISO-8859-1。
完整的配置如下:
Connector port="8080"
protocol="HTTP/1.1"
executor="tomcatThreadPool"
maxThreads="1000"
minSpareThreads="100"
acceptCount="1000"
maxConnections="1000"
connectionTimeout="20000"
compression="on"
compressionMinSize="2048"
disableUploadTimeout="true"
redirectPort="8443"
URIEncoding="UTF‐8" />
5、Engine
Engine 作为Servlet 引擎的顶级元素,内部可以嵌入:Cluster、Listener、Realm、 Valve和Host。
<Engine name="Catalina" defaultHost="localhost">
...
</Engine>
属性说明:
•name:用于指定Engine 的名称, 默认为Catalina 。该名称会影响一部分Tomcat的 存储路径(如临时文件)。•defaultHost :默认使用的虚拟主机名称, 当客户端请求指向的主机无效时, 将交 由默认的虚拟主机处理, 默认为localhost。
6、 Host
Host 元素用于配置一个虚拟主机, 它支持以下嵌入元素:Alias、Cluster、Listener、 Valve、Realm、Context。如果在Engine下配置Realm, 那么此配置将在当前Engine下 的所有Host中共享。同样,如果在Host中配置Realm , 则在当前Host下的所有Context 中共享。
Context中的Realm优先级 > Host 的Realm优先级 > Engine中的Realm优先 级。
<Host name="localhost" appBase="webapps" unpackWARs="true"
autoDeploy="true">
...
</Host>
属性说明:
•name: 当前Host通用的网络名称, 必须与DNS服务器上的注册信息一致。Engine中 包含的Host必须存在一个名称与Engine的defaultHost设置一致。•appBase:当前Host的应用基础目录, 当前Host上部署的Web应用均在该目录下 (可以是绝对目录,相对路径)。默认为webapps。•unpackWARs:设置为true, Host在启动时会将appBase目录下war包解压为目 录。设置为false, Host将直接从war文件启动。•autoDeploy:控制tomcat是否在运行时定期检测并自动部署新增或变更的web应 用。
通过给Host添加别名,我们可以实现同一个Host拥有多个网络名称,配置如下:
<Host name="www.web1.com" appBase="webapps" unpackWARs="true"
autoDeploy="true">
<Alias>www.web2.com</Alias>
</Host>
这个时候,我们就可以通过两个域名访问当前Host下的应用(需要确保DNS或hosts中添 加了域名的映射配置)。
配置2个域名
# tomcat 配置host
127.0.0.1 www.tomcat1.com
127.0.0.1 www.tomcat2.com
<Host name="www.tomcat1.com" appBase="webapps1"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="www.tomcat2.com" appBase="webapps2"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
7、Context
用于配置一个Web应用,默认的配置如下:属性描述:
<Context docBase="myApp" path="/myApp">
....
</Context>
属性说明:
•docBase:Web应用目录或者War包的部署路径。可以是绝对路径,也可以是相对于 Host appBase的相对路径。•path:Web应用的Context 路径。如果我们Host名为localhost, 则该web应用访问 的根路径为:http://localhost:8080/myApp。它支持的内嵌元素为:CookieProcessor, Loader, Manager,Realm,Resources, WatchedResource,JarScanner,Valve。
4、idea tomcat配置
tomcat服务器-本地
选择tomcat目录
添加服务器设置应用程序上下文
如您有问题、建议、需求、合作、加群交流请后台留言或添加微信
原文始发于微信公众号(白给信安):JAVA代码审计-JAVA 开发环境搭建
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论