导航:首页 > 源码编译 > git自动编译功能

git自动编译功能

发布时间:2022-05-29 17:11:31

A. 怎样使用 MSBuild 自动编译和发布 NET 网站

很多.NET 程序员开发的时候,每次都需要涉及到各个环境的部署问题,但是手工操作的话又容易出错,而且非常麻烦,我们今来讲解怎样实现自动编译和发布 .NET 网站。废话不多讲,先讲讲我的初步实现方案。

MSBuild 自动编译和发布 NET 网站步骤:
准备工具:GIT版本控制(gitlab),Jenkins, msbuild
1、安装git版本控制器,提交代码。(svn好像也可以), 并生成ssh public key上传到gitlab的ssh key中(个人配置/SSH KEY)。
2、安装jenkins开源工具。
3、Jenkins安装git plugin, Msbuild插件(Manager Jenkins/Manage Plugins)
4、配置Jenkins中的git(Manager Jenkins/Configure System)在git栏中输入name和Path: git install path\cmd\git.exe
5、添加对应.NET framework version MSBuild
Name: .NET4.0
Path to MSBuild:
%system%\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
6、建立.NET项目文件,并添加MSBuild文件
建立一个解决方案nonsuch.sln,里面包含一个website: nonesuch.web.
在解决方案根目录建立一个xml文件,改名为: build.targets

B. git和github是什么有什么作用最用通俗的语言

Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git 是Linus Torvalds为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。

GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的 Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。

(2)git自动编译功能扩展阅读:

GitHub同时提供付费账户和免费账户。这两种账户都可以创建公开或私有的代码仓库,但付费用户支持更多功能。根据在2009年的Git用户调查,GitHub是最流行的Git访问站点。除了允许个人和组织创建和访问保管中的代码以外,它也提供了一些方便社会化共同软件开发的功能,即一般人口中的社群功能,包括允许用户追踪其他用户、软件库的动态,对软件代码的改动和bug提出评论等。

GitHub也提供了图表功能,用于概观显示开发者们怎样在代码库上工作以及软件的开发活跃程度。

GitHub同时允许注册用户和非注册用户在网页中浏览项目,也可以以ZIP格式打包下载。但是用户必须注册一个账号然后才能进行讨论、创建并编辑项目、参与他人的项目和代码审查。

GitHub支持创建不限数量的公开仓库,已付费用户可以创建私有仓库。2019年1月7日,GitHub宣布免费用户也可以创建私有仓库,私有仓库数量不限但每个仓库最多指定三个合作者。

C. gitspring代码自动生成

简单的代码生成工具,主要是用来做代码的自动化生成。根据各自的需求,可以修改里面的源码。
代码是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。
GIT与CVS、SVN相比最大的不同,它是分布式版本控制系统,集中式可以理解为将版本的管理集中到了统一的位置,缺点就是对于中央仓库依赖强,一旦中央仓库出现问题,即不可以提交也不可以更新,无法进行版本控制,而GIT本地是有本地仓库,及时远程仓库宕掉了,仍然都可以进行版本控制。但是我认为他们都会有单点问题,一旦远程仓库宕掉了,就无法获取彼此最新的代码。

D. 如何使用 Git 和 GitHub

github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。对于一般人来说公共仓库就已经足够了,而且我们也没多少代码来管理,O(∩_∩)O~。步骤:
1.注册账户以及创建仓库
要想使用github第一步当然是注册github账号了。之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之后会出现一些仓库的配置信息,这也是一个git的简单教程。
2.安装客户端msysgit
github是服务端,要想在自己电脑上使用git我们还需要一个git客户端,我这里选用msysgit,这个只是提供了git的核心功能,而且是基于命令行的。如果想要图形界面的话只要在msysgit的基础上安装TortoiseGit即可。
装完msysgit后右键鼠标会多出一些选项来,在本地仓库里右键选择Git Init Here,会多出来一个.git文件夹,这就表示本地git创建成功。右键Git Bash进入git命令行,为了把本地的仓库传到github,还需要配置ssh key。
3.配置Git
首先在本地创建ssh key;

$
ssh-keygen
-t rsa -C
"[email protected]"

后面的[email protected]改为你的邮箱,之后会要求确认路径和输入密码,我们这使用默认的一路回车就行。成功的话会在~/下生成.ssh文件夹,进去,打开id_rsa.pub,复制里面的key。
回到github,进入Account Settings,左边选择SSH Keys,Add SSH Key,title随便填,粘贴key。为了验证是否成功,在git bash下输入:
$
ssh
-T [email protected]

如果是第一次的会提示是否continue,输入yes就会看到:You’ve successfully authenticated, but GitHub does not provide shell access 。这就表示已成功连上github。
接下来我们要做的就是把本地仓库传到github上去,在此之前还需要设置username和email,因为github每次commit都会记录他们。

$ git config --global user.name
"your name"
$ git config --global user.email
"[email protected]"

进入要上传的仓库,右键git bash,添加远程地址:

$ git remote add origin [email protected]:yourName/yourRepo.git

后面的yourName和yourRepo表示你再github的用户名和刚才新建的仓库,加完之后进入.git,打开config,这里会多出一个remote “origin”内容,这就是刚才添加的远程地址,也可以直接修改config来配置远程地址。
4.提交、上传
接下来在本地仓库里添加一些文件,比如README,

$ git add README
$ git commit -m
"first commit"

上传到github:

$ git push origin master

git push命令会将本地仓库推送到远程服务器。
git pull命令则相反。
修改完代码后,使用git status可以查看文件的差别,使用git add 添加要commit的文件,也可以用git add -i来智能添加文件。之后git commit提交本次修改,git push上传到github。
5.gitignore文件
.gitignore顾名思义就是告诉git需要忽略的文件,这是一个很重要并且很实用的文件。一般我们写完代码后会执行编译、调试等操作,这期间会产生很多中间文件和可执行文件,这些都不是代码文件,是不需要git来管理的。我们在git status的时候会看到很多这样的文件,如果用git add -A来添加的话会把他们都加进去,而手动一个个添加的话也太麻烦了。这时我们就需要.gitignore了。比如一般c#的项目我的.gitignore是这样写的:

bin
*.suo
obj

bin和obj是编译目录,里面都不是源代码,忽略;suo文件是vs2010的配置文件,不需要。这样你在git status的时候就只会看到源代码文件了,就可以放心的git add -A了。
6.tag
我们可以创建一个tag来指向软件开发中的一个关键时期,比如版本号更新的时候可以建一个“v2.0”、“v3.1”之类的标签,这样在以后回顾的时候会比较方便。tag的使用很简单,主要操作有:查看tag、创建tag、验证tag以及共享tag。
6.1查看tag
列出所有tag:

git tag

这样列出的tag是按字母排序的,和创建时间没关系。如果只是想查看某些tag的话,可以加限定:

git tag -l v1.*

这样就只会列出1.几的版本。
6.2创建tag
创建轻量级tag:

git tag v1.0

这样创建的tag没有附带其他信息,与之相应的是带信息的tag:

git tag -a v1.0 -m
'first version'

-m后面带的就是注释信息,这样在日后查看的时候会很有用,这种是普通tag,还有一种有签名的tag:

git tag -s v1.0 -m
'first version'

前提是你有GPG私钥,把上面的a换成s就行了。除了可以为当前的进度添加tag,我们还可以为以前的commit添加tag:

#首先查看以前的commit
git log --oneline
#假如有这样一个commit:8a5cbc2 updated readme
#这样为他添加tag
git tag -a v1.1 8a5cbc2

6.3删除tag
很简单,知道tag名称后:

git tag -d v1.0

6.4验证tag
如果你有GPG私钥的话就可以验证tag:

git tag -v

v1.0

6.5共享tag
我们在执行git push的时候,tag是不会上传到服务器的,比如现在的github,创建tag后git push,在github网页上是看不到tag的,为了共享这些tag,你必须这样:

git push origin --tags
希望能帮到你哦!

E. git master merging怎么解决

这个需要你对代码和功能进行分析,自己去确定合并顺序每合并一个分支,要对代码进行重新编译排查,这些功能都不是GIT自动完成的

F. jenkins git+maven 编译怎么知道编译成功

1.通过Jenkins web页面添加Git plugin

Manage Jenkins->Manage Plugins->Available中选择Git Plugin安装,

注意要填写user name和 email地址,否则日后会碰到git tag的错误

2.在Jenkins使用的机器上创建Git用户所需要的公钥

具体步骤参考前面Git server文章

但是注意,要将最后生成的.ssh目录下的公钥和私钥文件复制到/var/lib/jenkins/.ssh目录下,否则git clone命令会报错

3.修改jenkins目录权限

chmod -R 777 /var/lib/jenkins

4.现在可以通过web页面创建一个项目Test,然后设置该项目使用Git作为版本管理。

并且设置repository路径,比如我的:git@S1:cml.git

5.在build选项的pom文件指定你需要执行的pom.xml路径

比如我的一个测试工程名叫client,是个maven工程,我设置为client/pom.xml

6.现在可以点击左侧的Build now进行测试

一切OK,则没有错误日志。在Build History中可以看到测试结果,有没有错误。

7.Email发送设置

在Manage Jenkins->Configure System->Email Notification中,设置SMTP发送的基本信息,点击Advanced,可以填写用户名和密码。还有一个测试按钮可以用来发送测试设置是否正确。

同时在Test项目中的Building Settings打勾选中E-mail
Notification,点击右边的问号,会出现帮助文档,说明在四种情况下会发送email,填写接受email的地址,然后故意将client代码
修改到不能编译通过。然后点击Build now按钮测试一下。果然收到email.

8.检查代码更新并编译

可以通过Poll SCM来设置定时检查编译功能

比如*/5 * * * * 就是每隔5分钟检查一次,如果git仓库中有更新,则执行build操作。

9.使用Maven加快下载速度

如我这篇文章所述,用可以避免下载过慢问题,也可以绕过公司内部外网限制问题。

Jenkins的.m2目录路径在:/var/lib/jenkins/.m2/

首先清空里面所有的jar包,然后创建settings.xml文件,并编辑内容如下:

源码打印?
<settings>
<mirrors>
<mirror>
<!--This sends everything else to /public -->
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url></url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<!--Enable snapshots for the built in central repo to direct -->
<!--all requests to nexus via the mirror -->
<repositories>
<repository>
<id>central</id>
<url></url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url></url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<!--make the profile active all the time -->
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>

现在点击build now测试一下,打开console output,看看命令行输出结果,如果发现从S1下载jar包,就正确。和不用的比较了一下,节省了1分多钟.

G. Git 2.1有哪些新特性

在Git 2.0发布两个半月之后,Git又发布了新的版本2.1版。虽然只是小版本号的更新,但是这一版的新特性和改进的内容的列表却很长。

可以从git仓库找到完整的发布日志,该日志提供了关于Git 2.1版更多的细节。下面我们挑选了一些Git 2.1版的新特性来进行一下简单的介绍。

更出色的bash补全功能
Bash补全功能得到了进一步的扩展,从而可以“更好地处理那些为复杂的命令序列而定义的别名”。换句话说,如果你为一组命令序列定义了一个别名,该别名对应的命令序列是将一个git命令的结果通过管道输入到例如像grep、sort或其他任何的命令行程序中,那么自动补全功能会像处理原生的git命令一样将为该别名生成相同的选项。

装饰日志的“auto”选项
log.decorate 这一配置变量目前支持通过指定值auto,从而可以在输出被发送到tty的时候,自动启用--decorate 选项。

支持在合并时采用vimdiff3
git mergetool命令目前支持使用vimdiff3作为背后实现

在git-grep中支持全路径名输出
添加了一个--full-name 选项,允许以全路径名的展现形式获取结果,替代了根据当前目录展示相对路径的方式。需要重点关注的是该行为现在已是默认配置:“git grep 现在对grep.fullname 配置变量强加了‐‐full-name选项,从而使该选项成为了默认配置”。这会对那些不期望该种新行为的脚本化用户造成损害。

标签排序
Git-tag现在支持tag.sort配置,“当没有指定‐‐sort= 选项的时候,将会按照默认的顺序进行排序。” Tim Pettersen在Atlassian Blog中提供了一个关于该新特性如何使用的很好的例子,他考虑到标签中的版本数字从而建议采用下面的方式作为默认排序:

$ git config --global tag.sort version:refname
通过设置上述的默认选项,使用git tag 将会对版本数字进行正确地排序,而无需同时指定任何特定的排序选项来覆盖它原有默认的按字母排序的方式。

新版的Git同样也包含了数个针对性能提升和大量bug修复的变更。更多的详情可以查看完整的发布日志。上面提到的Tim Pettersen 的文章也非常值得一读,因为它囊括了作者关于“新版中让身在Atlassian的我们兴奋的几个方面”的一些想法,并提供了更加丰富的示例。

H. jenkins git怎么自动编译工程

当时也是花费了不少时间来配置Jenkins自动打包的问题,觉得还是需要记录一下。 1.安装Jenkins,这个很简单,不需要多说。 2.下载Git Plugin,Gradle Plugin,Android Emulator Plugin(这个可以配置SDK路径,觉得这个插件挺好)

I. Git是什么

Git是什么?
Git是目前世界上最先进的分布式版本控制系统(没有之一)。
Git有什么特点?简单来说就是:高端大气上档次!
那什么是版本控制系统?
如果你用Microsoft Word写过长篇大论,那你一定有这样的经历:
想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新的Word文件,再接着改,改到一定程度,再“另存为……”一个新文件,这样一直改下去,最后你的Word文档变成了这样:

过了一周,你想找回被删除的文字,但是已经记不清删除前保存在哪个文件里了,只好一个一个文件去找,真麻烦。
看着一堆乱七八糟的文件,想保留最新的一个,然后把其他的删掉,又怕哪天会用上,还不敢删,真郁闷。
更要命的是,有些部分需要你的财务同事帮助填写,于是你把文件Copy到U盘里给她(也可能通过Email发送一份给她),然后,你继续修改Word文件。一天后,同事再把Word文件传给你,此时,你必须想想,发给她之后到你收到她的文件期间,你作了哪些改动,得把你的改动和她的部分合并,真困难。
于是你想,如果有一个软件,不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以,岂不是很方便?
这个软件用起来就应该像这个样子,能记录每次文件的改动:

版本
用户
说明
日期

1 张三 删除了软件服务条款5 7/12 10:38
2 张三 增加了License人数限制 7/12 18:09
3 李四 财务部门调整了合同金额 7/13 9:51
4 张三 延长了免费升级周期 7/14 15:17
这样,你就结束了手动管理多个“版本”的史前时代,进入到版本控制的20世纪。

J. 如何使用Git 钩子来自动化开发和部署任务

版本控制,这是现代软件开发的核心需求之一。有了它,软件项目可以安全的跟踪代码变更并执行回溯、完整性检查、协同开发等多种操作。在各种版本控制软件中,Git是近年来最流行的软件之一,它的去中心化架构以及源码变更交换的速度被很多开发者青睐。

在git的众多优点中,最有用的一点莫过于它的灵活性。通过“hooks”(钩子)系统,开发者和管理员们可以指定git在不同事件、不同动作下执行特定的脚本。

本文将介绍git hooks的基本思路以及用法,示范如何在你的环境中实现自动化的任务。本文所用的操作系统是Ubuntu 14.04服务器版,理论上任何可以跑git的系统都可以用同样的方法来做。

前提条件

首先你的服务器上先要安装过git。Ubuntu 14.04的用户可以查看这篇教程了解如何在Ubuntu
14.04上安装git。

其次你应该能够进行基本的git操作。如果你觉得对git不太熟,可以先看看这个Git入门教程。

上述条件达成后,请继续往下阅读。

Git Hooks的基本思路

Git hooks的概念相当简单,它是为了一个单一需求而被设计实现的。在一个共享项目(或者说多人协同开发的项目)的开发过程中,团队成员需要确保其编码风格的统一,确保部署方式的统一,等等(git的用户经常会涉及到此类场景),而这些工作会造成大量的重复劳动。

Git hooks是基于事件的(event-based)。当你执行特定的git指令时,该软件会从git仓库下的hooks目录下检查是否有相对应的脚本,如果有则执行之。

有些脚本是在动作执行之前被执行的,这种“先行脚本”可用于实现代码规范的统一、完整性检查、环境搭建等功能。有些脚本则在事件之后被执行,这种“后行脚本”可用于实现代码的部署、权限错误纠正(git在这方面的功能有点欠缺)等功能。

总体来说,git hooks可以实现策略强制执行、确保一致性、环境控制、部署任务处理等多种功能。

Scott Chacon在他的Pro Git一书中将hooks划分为如下类型:

客户端的hook:此类hook在提交者(committer)的计算机上被调用执行。此类hook又分为如下几类:

代码提交相关的工作流hook:提交类hook作用在代码提交的动作前后,通常用于运行完整性检查、提交信息生成、信息内容验证等功能,也可以用来发送通知。
Email相关工作流hook:Email类hook主要用于使用Email提交的代码补丁。像是Linux内核这样的项目是采用Email进行补丁提交的,就可以使用此类hook。工作方式和提交类hook类似,而且项目维护者可以用此类hook直接完成打补丁的动作。
其他类:包括代码合并、签出(check out)、rebase、重写(rewrite)、以及软件仓库的清理等工作。

服务器端hook:此类hook作用在服务器端,一般用于接收推送,部署在项目的git仓库主干(main)所在的服务器上。Chacon将服务器端hook分为两类:

接受触发类:在服务器接收到一个推送之前或之后执行动作,前触发常用于检查,后触发常用于部署。
更新:类似于前触发,不过更新类hook是以分支(branch)作为作用对象,在每一个分支更新通过之前执行代码。

上述分类有助于我们对hook建立一个整体的概念,了解它可以用于哪类事件。当然了,要能够实际的运用它,还需要亲自动手操作、调试。

阅读全文

与git自动编译功能相关的资料

热点内容
编译原理全书知识点总结 浏览:905
javaoa开发 浏览:875
单片机的用途和使用方法 浏览:944
程序员在新公司上班 浏览:430
发信如何设置服务器 浏览:77
源代码查询加密数字 浏览:605
附带编译 浏览:108
海康萤石云app怎么回放 浏览:404
写一个编译器怎么写 浏览:285
单片机蜂鸣器发声原理 浏览:138
程序员那么可爱陆离跳水是哪集 浏览:17
如何制作cdn服务器 浏览:111
写java加密程序 浏览:659
菜鸟数据分析pdf 浏览:291
单片机做实用东西 浏览:651
我的世界最强斗罗服务器怎么觉醒武魂 浏览:931
密友圈app怎么切换用户登录 浏览:217
我把程序员当爱豆追 浏览:978
android判断电话接通 浏览:646
大孔文件夹 浏览:785