Subversion (SVN)

.NET持续集成与自动化部署之路第一篇-半天搭建你的Jenkins持续集成与自动化部署系统

前提是你 提交于 2020-04-22 01:28:36
.NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) # 前言 # 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛。由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由于当时对系统划分的不合理等等原因导致每次发版都会设计到多个系统的发布,小的版本三五个,大的版本十几个甚至几十个系统的同时发布!而我们也没有相应的基础设施的支撑,发版方式更是最传统的,开发人员将发布包发给运维人员,由其讲各个发布包一个一个覆盖到生产环境。因此每次上线仅仅发版就需要2-3个小时。这种方式不仅仅耗时、耗力,更是由于人工操作经常导致一些丢、落的现象。而我们当时的测试也是采用纯手工的测试,发版完毕后一轮回归测试就需要3-4个小时(当时主要是手工测试)。之前也一直提倡持续集成、自动化的测试和运维,但迟迟没有推进落地。终于在一个加班到凌晨四点的夜晚后,我再也受不了。回家后躺在床上迟迟睡不着,心想这个自动化的发布能有多难,他们搞不了,老子自己搞,于是6点爬起来来到公司,正式开始了我的持续集成、自动化部署的研究与推进之路。 一、初识Jenkins # 由于之前亦没有相关知识的积累,因此也是对如何实现也是一头雾水。于是只能找度娘,关键字"自动化发布"。搜索到很多工具和方法

Linux上进行常用软件的配置

微笑、不失礼 提交于 2020-04-21 07:59:31
当拿到一个新的linux服务器的时候一般要经过以下5个配置 修改HOSTANME vi /etc/sysconfig/network 修改HOSTNAME和IP的映射 vi /etc/hosts 关闭防火墙 service iptables stop 关闭防火墙的开机启动 chkconfig iptables off 重启linux服务器 reboot 1.配置jdk 1.1.在home目录下创建apps目录(根据习惯)     mkdir apps 1.2.使用xftp工具把jdk的解压包(tar.gz格式)上传到linux服务器的apps文件夹下 1.3.解压jdk的压缩包 tar -zxvf xxxxx.gar.gz 1.4.进入解压好的jdk中,并且获取到其的绝对路径 pwd 1.5.配置环境变量 vi /etc/profile 1.6.使环境变量立即生效 source /etc/profile 1.7.检测jdk是否配置成功 javac -version 2.配置tomcat 也就是只要是从apache官网上下载的所有组件/框架/项目都需要jdk的环境变量支持 2.1.从官网下载tomcat8 2.2.使用xftp把tomcat的解压包上传到linux服务器上 2.3.解压tomcat tar -zxvf xxxxx.tar.gz 2.4.直接启动tomcat

HRM项目总结

假装没事ソ 提交于 2020-04-21 04:20:25
HRM项目总结 一、Git 1.git的介绍 Git和SVN类似,都是版本控制的工具,用作项目的协同开发,不同的是,SVN是集中式的版本控制工 具,Git是分布式的版本控制工具 2.git的使用 ①将新写的代码git add ②执行git commit,进行代码的提交,提交到本地 ③推送【git push】 ④拉取【git pull】 3.git图形化界面操作 TortoiseGIT Idea使用Git 4.冲突的处理 和svn类型,svn冲突后会有多个版本文件,但是git不会产生多个版本文件,我们只需要更改冲突的文 件后,标记为“解决”,再提交代码就OK了,其他和svn解决冲突一模一样。 5.Git的远程仓库 GitLab 二、搭建后端项目结构 1.注册中心Eureka 1.1.依赖 <!--eureka服务端的场景启动器--> < dependencies > < dependency > < groupId > org.springframework.cloud </ groupId > < artifactId > spring-cloud-starter-netflix-eureka-server </ artifactId > </ dependency > 1.2.配置 server : port : 8761 eureka : instance : hostname

如何在不创建新密钥的情况下删除SSH密钥的密码?

泄露秘密 提交于 2020-04-18 19:52:12
问题: I set a passphrase when creating a new SSH key on my laptop. 我在笔记本电脑上创建新的SSH密钥时设置了密码。 But, as I realise now, this is quite painful when you are trying to commit ( Git and SVN ) to a remote location over SSH many times in an hour. 但是,正如我现在意识到的那样,当您尝试在一小时内通过SSH多次提交( Git 和 SVN )远程位置时,这非常痛苦。 One way I can think of is, delete my SSH keys and create new. 我能想到的一种方法是删除我的SSH密钥并创建新密钥。 Is there a way to remove the passphrase, while still keeping the same keys? 有没有办法删除密码,同时仍然保持相同的密钥? 解决方案: 参考一: https://stackoom.com/question/TEq/如何在不创建新密钥的情况下删除SSH密钥的密码 参考二: https://oldbug.net/q/TEq/How-do-I-remove-the

centos 7搭建svn+apache服务器及探讨SVNParentPath和SVNPath的区别

我的梦境 提交于 2020-04-18 19:45:57
1.前言 今天领导让搭建一套svn服务器,用来存一些文档,本以为是很简单的一件事情,可是过程并没有那么顺利,主要是不理解SVNParentPath和SVNPath导致的问题,在经过查找文档和调试之后,才弄清楚他们的使用和区别,所以特此记录一下。 2.centos 7搭建svn+apache服务器 关闭selinux和防火墙 安装svn和apache和mod_dav_svn模块 yum install httpd svn mod_dav_svn 查看svn和apache版本,确定安装成功 [root@chenxz-test1 conf.d]# svn --version svn, version 1.7.14 (r1542130) compiled Apr 11 2018, 02:40:28 Copyright (C) 2013 The Apache Software Foundation. This software consists of contributions made by many people; see the NOTICE file for more information. Subversion is open source software, see http://subversion.apache.org/ The following repository

idea中使用git

大城市里の小女人 提交于 2020-04-18 18:18:39
idea中使用git 一. git安装 下载 最新的 git 包 2. 解压后随便放个位置即可,例如图 3. 打开Idea File—> Setting 4. 设置Git exe 如下图 5. Test 二. 基本介绍 git与svn的区别在于多出一个本地仓库 整体流程为: 通过 Add 把文件从IDE的工作目录添加到本地仓库的stage区 通过 Commit 把stage区的暂存文件提交到当前分支的仓库,并清空stage区 通过 Push 把本地仓库的提交同步到远程仓库 三. idea中的git使用 1. 拉取与提交 a. 创建项目并提交 首先有一个远程仓库的url,例: https://gitee.com/razera_admin/gitdemo.git 创建好要提交到远程仓库的本地代码 指定本地仓库位置(一般选择项目目录) 通过 Add 把文件从IDE的工作目录添加到本地仓库的stage区 【ctrl+alt+a】 通过 Commit 把stage区的暂存文件提交到当前分支的仓库,并清空stage区 通过 Push 把本地仓库的提交同步到远程仓库【ctrl+shift+k】 第一次提交需要设置远程仓库地址: https://gitee.com/razera_admin/gitdemo.git b. 从仓库拉取项目 点击vcs–>checkout from version

个人博客作业(阅读作业)

我与影子孤独终老i 提交于 2020-04-18 12:11:54
个人博客作业(阅读作业) 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业 我在这个课程的目标是 体验软件工程上完整的流程,学习开发知识,培养开发能力,实现个人素质的提升 这个作业在那个具体方面帮我实现目标 通过阅读《构建之法》,初步了解掌握软件工程中的相关概念和知识 作业正文 正文如下 其他参考文献 提问的艺术 , 如何提问 , 你所不知道的 Dijkstra ,《构建之法》, 1、快速看完整部教材,列出你 仍然不懂 的5到10个问题。 问题一:教材2.1.2 单元测试是否只能由本人编写? 单元测试必须由最熟悉代码的人(程序的作者)来写。代码的作者最了 解代码的目的、特点和实现的局限性。所以,写单元测试没有比作者更适合的人 选了。 由本人完成的程序当然只有本人最熟悉,代码作者确实最了解代码的目的和特点,但是对于代码的局限性这一点我认为代码作者不一定能够清晰准确的认识到。正是因为代码的作者有了这份代码完整的编写逻辑,这很可能会成为一种固化的思维,影响到编写者在设计单元测试时的想法。在这一点上,我认为其他的了解代码目的特点的人可能会更具有发散的思维,不受编写逻辑的影响,设计出更完备更全面的单元测试。 问题二:教材4.5.2 关于结对编程 在结对编程模式下,一对程序员肩并肩、平等地、互补地进行开发工作。他们并

1 简单的ROS机器人仿真

倖福魔咒の 提交于 2020-04-17 08:24:57
【推荐阅读】微服务还能火多久?>>> 博客转自古-月: https://blog.csdn.net/hcx25909/article/details/8870552 ,本文针对Fuerte版本,Kinetic版本参考 https://www.cnblogs.com/flyinggod/p/11489250.html 前边我们已经介绍了ROS的基本情况,以及新手入门ROS的初级教程,现在就要真正的使用ROS进入机器人世界了。接下来我们涉及到的很多例程都是《ROS by Example》这本书的内容,我是和群里的几个人一起从国外的亚马逊上买到的,还是很有参考价值的,不过前提是你已经熟悉之前的新手教程了。 一、ROS by Example 这本书是关于国外关于ROS出版的第一本书,主要针对Electric和Fuerte版本,使用机器人主要是TurtleBot。书中详细讲解了关于机器人的基本仿真、导航、路径规划、图像处理、语音识别等等,而且在google的svn上发布了所有代码,可以通过以下命令下载、编译: svn checkout http://ros-by-example.googlecode.com/svn/trunk/rbx_vol_1 rosmake rbx_vol_1 rospack profile //加入ROS package路径 二、rviz简单机器人模拟 1

Android常见问题集锦

帅比萌擦擦* 提交于 2020-04-16 13:43:25
【推荐阅读】微服务还能火多久?>>> 原文: http://www.huwei.tech/2016/05/28/Android%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E9%9B%86%E9%94%A6/ 前言: 在开发中,每个人或多或少会遇到各种各样的问题,有些问题依据代码思路调试就可以定位出来,而大部分的问题都是经验性问题,遇到过就很容易解决,但在第一次遇到时往往会花费大量时间来定位问题。针对此种情况,下文把做开发以来遇到的经典问题整理出来,希望对有需要的朋友有所帮助! 注:此文后续会同步更新最新的问题哦! 最近一次更新时间: October 10, 2016 10:42 AM 代码类 1、Java工程中调用Android库出现“Stub!”错误 描述: 控制台显示错误:Exception in thread “main” java.lang.RuntimeException: Stub! 原因: 在Java工程中尝试使用Android库中的org.json.JSONObject类,在执行时出现“Stub!”错误,Android工程中无法执行java的main函数相似,Android工程和Java工程还有一定的差异,不能混用他们的库,和函数入口方法。 解决: 将执行的代码,移植到在Android工程可以正确执行! 2

关于自动构建代码与版本号的问题

故事扮演 提交于 2020-04-15 14:08:35
【推荐阅读】微服务还能火多久?>>> 如果用自动构建,版本信息是一个让人头疼的问题。 版本信息应该包含以下三个方面: 模块名称:foo 版本号:v1.1.1 构建信息: 132 构建信息通常是git/svn中的记录数,这样可以保证找BUG的时候能对的上版本; 版本信息写死在代码里可能引发如下问题: 程序中的版本号和打包的版本号一时手误就对不上了; 并非每次提交都需要修改版本号,人为控制容易忘; 构建信息来自版本管理工具,你一提交代码它就变了,写死不严谨; 因此,最好处理方法是将版本信息写在构建脚本中,在构建时,修改版本号文件。然后编译。 这时就需要一个获取版本信息的工具。 我用我最喜欢的C语言实现如下: #include <stdio.h> #include <string.h> int getBuildInfo(const char* cmd) { FILE *fstream = NULL; char buffer[1024]; int res = 0; memset(buffer,0,sizeof(buffer)); if (NULL == (fstream = popen(cmd,"r"))) { return -1; } fgets(buffer, sizeof(buffer), fstream); pclose(fstream); sscanf(buffer,"%d",