Maven 与 SVN
认识 Maven 项目对象模型(POM)
之前写过一篇
Maven 和 Gradle 项目构建工具之间转换的文章。
https://blog.youkuaiyun.com/Roobert_Chao/article/details/90244463
- Maven 项目对象模型,通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。Maven 单词来自于犹太语,意为知识的积累。JAR 文件都由 CVS 来维护
Maven 的下载地址:http://maven.apache.org/download.cgi- Gradle 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化构建开源工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。面向Java应用为主。当前其支持的语言限于Java、Groovy、Kotlin和Scala,计划未来将支持更多的语言。
- 主要功能:主要用于构建项目,合理叙述项目间的依赖关系,通过pom.xml 文件来配置获取 Jar 包。
安装以及环境配置:
- 【访问网址进行下载:http://maven.apache.org/download.cgi】

- 【下载之后解压,解压的目录如下:】

- 【将解压之后的 bin 目录配到环境变量 Path 当中】

- 【在全局的环境变量下,执行如下操作】
【 Maven 执行 mvn -v 】

【gradle -v】

Maven 在 eclipse 与 IDEA 的配置。
Maven 的三配置:
1、配置全局可用的命令,上一步已经配置好了。(path 的配置。)
2、在 config 目录下有一个 setting.xml 文件,配置文件中的本地仓库与阿里云镜像。
3、记得在 eclipse 中使用修改过的 setting.xml ,在 IDEA 中记得勾选 【override】。

有关于 IDEA 中Maven的设置请参考:https://blog.youkuaiyun.com/Roobert_Chao/article/details/88626831#_Maven_33

认识 Maven 的五大重要部分。
- 本地仓库。
构建 Maven 项目时,首先会从本地仓库查找资源,如果没有,那么 Maven 会从远程仓库下载到本地仓库。方便下次使用。
<settings>
<localRepository>本地仓库的地址</localRepository>
</settings>
- 远程仓库。
除本地仓库以外的仓库都叫做远程仓库。
<profiles>
<profile>
<id></id>
<repositories>
<repository>远程仓库配置</repository>
</repositories>
</profile>
</profiles>
- 中央仓库。
远程仓库的一种,属于外部网络。特征就是 <id>central</id>名为 central 。
Maven的中央仓库地址默认是:https://repo.maven.apache.org/maven2, 我们可以通过网址来查询所需要对应的 Maven依赖(https://mvnrepository.com/),也可以通过修改 settings.xml文件来修改默认的中央仓库地址。
## 需要注意两点内容
1. 修改的是中央仓库,所以 <repository> 下边的第一个 <id>central</id>
<profile>
<id>repository-profile</id>
<repositories>
<repository>
<id>central</id>
<name>Central Repository</name>
<layout>default</layout>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
</profile>
2. 还需要激活 当前的这个中央仓库。
<activeProfiles>
<activeProfile>repository-profile</activeProfile>
</activeProfiles>
- Nexus 私服。远程仓库的一种。
配置在局域网环境中,为局域网中所有开发人员提供统一的 Jar 包管理。
本地仓库(本机)—>私服(局域网)—>中心仓库(外部网络)- 镜像。 使用较多的就是 阿里云镜像。
Gradle 的配置和 Maven 的配置基本上是一样的,在开发安卓的时候,第一次接触到 Gradle ,相比较下,配置方式也比较简单了,仅仅设置好了本地仓库,速度也不是很慢。
常用的是 阿里云镜像 如下:
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
Maven 的结构与常用命令。
groupid :组的名称。
artifactid:模块名称。
version:版本号。
- 使用 Idea 构建 Maven 项目。






- Maven 的命令。
可以参考百度百科的内容。

我总结的,比较使用的命令。

常用的命令需要掌握如下(希望在idea 中能够数量的使用。):

SVN 的使用与安装。
- 对于我来说,SVN 与 Git 之间,SVN 趋向于局域网,而 Git 在网络环境中,而且还有很多不错的源码,自然是更喜欢使用 git。之前写过一篇关于 Git 使用的文章 https://blog.youkuaiyun.com/Roobert_Chao/article/details/86618599。
- 查看笔记,的确缺少一篇关于 SVN(SubVersion 。)
- SVN 的简介:
SubVerion 的简称,开放源码的版本控制系统,取代CVS。
SVN 的下载:
客户端 SVN 。
- 官网下载址:https://www.visualsvn.com/visualsvn/download/tortoisesvn/
注意勾选第二行的内容,方便使用右键菜单的管理。

服务器搭建和使用。
- VisualSVN :http://www.visualsvn.com/server/download/ 一键式安装,安装时主要填写本地仓库位置。
IDEA 对 Svn 的配置与使用。

浏览检出内容:

直接检出,从SVN 上下载项目。


IDEA 提交项目到 SVN 。
- 无论是 IDEA 使用 SVN 还是 Git 的方式都需要先创建远程仓库。Git 创建远程仓库可以通过登录 Github 官网,登录后进行创建,要记得远程仓库的 URL 。本地 SVN 也需要先创建好本地的仓库才行。
- 这里以 SVN 为例子。Git 的方式请查看 https://blog.youkuaiyun.com/Roobert_Chao/article/details/86618599 ,Git 这篇文章没有使用 idea 上传,直接使用 git 命令的方式。











图中.iml 文件和 eclipse 中的.classpath、.project 都属于开发工具配置文件,也就是在项目导入 ide的过程中生成的配置文件,每个人开发环境是不一样的,所以这个文件没必要提交。


- 上传到本地 SVN 之后的内容。

Session 与 Cookie
Session 与 Cookie 都是会话跟踪技术。
- Cookie 通过客户端记录信息确定用户身份。 正常的cookie只能在一个应用中共享,即一个cookie只能由创建它的应用获得。
- Session 服务端记录信息确定用户身份,需要依赖于 cookie 的 sessionid 做唯一标识。
| 区别 | Session | Cookie |
|---|---|---|
| 数据存放位置 | 服务器 | 客户端 |
| 安全性 | 相对安全 | 不安全,分析解析Cookie ,进行 Cookie 欺骗 |
| 生命周期不同 | session 的生命周期到了之后会结束,不到指定的时间,也会随着浏览器进程的结束而结束。 | cookies默认情况下也随着浏览器进程结束而结束,但如果手动指定时间,则不受浏览器进程结束的影响。 |
| 性能 | 占用服务器的性能 | 无 |
- 针对以上的区别,建议登录等重要信息存放到 Session 中,其他保留信息存到 Cookie 中,一般大小为 4K,最多存储 20 个。
- 对于 Session 和 Cookie 的生命周期器的设置如下。
### 服务器 设置 Cookie 的生命周期
Cookie cookie = new Cookie("user", user); // 存放登录用户的信息
cookie.setMaxAge(365 * 24 * 3600); // 设置生命周期 24 小时 * 365 = 一年,设置后不受浏览器进程结束的影响。
cookie.setPath("/"); // 设置 Cookie 的作用范围。可在同一应用服务器内共享方法。
response.addCookie(cookie); // 将 cookie 返回给响应
### 服务器检测是否有设置的 Cookie 。
Cookie[] cookies=request.getCookies();
for(Cookie cookie: cookies){
if(cookie.getName().equals(user)){}
}
### 服务器设置 Session 的生命周期
HttpSession session = request.getSession();
session.setAttribute(user, user);
session.setMaxInactiveInterval(2 * 3600); // Session保存两小时
Cookie cookie = new Cookie("JSESSIONID", session.getId());
cookie.setMaxAge(2 * 3600); // 客户端的JSESSIONID也保存两小时
cookie.setPath("/");
response.addCookie(cookie);
Session需要 Cookie 做持久化处理,当浏览器关闭,再次启动后,由于 Servlet 用于保存 Session ID 的 JSESSIONID Cookie 是临时的,不是持久Cookie,当浏览器关闭后,这个 Cookie 就会被删除,因此,需要将 JSESSIONID 进行持久化
- cookie.setPath("/") ;设置当前 Cookie的作用范围。设置cookie.setDomain(".jszx.com");实现跨域共享 Cookie 。
项目 B (域名:cn.chao.b)中使用项目 A (com.log.a)的 Cookie 。
1、在项目 A 中设置 Cookie 的时,增加 cookie.setDomain(".cn.chap.b"); 这样 项目 b 就可以访问 项目A 设置的Cookie 了,
* 参数必须以“.”开始。
* 输入 url 访问webapp_b的时候,必须输入域名才能解析。
本文详细介绍了Maven项目构建、配置与管理,包括POM的理解、环境配置、Maven命令使用,以及如何在Eclipse与IDEA中配置Maven。同时,深入探讨了SVN的安装、使用及在IDEA中的配置方法,对比了SVN与Git的适用场景。
965

被折叠的 条评论
为什么被折叠?



