当前位置: 首页>编程语言>正文

git 与maven的区别 maven和git区别

以前都没有写过博客,今年毕业,跟同学做个微信商城,同学叫我写个博客总结总结,我觉得还是有必要的。

开始

文章概述:

文章讲解maven,git的搭配,两个都是项目管理工具,为什么要搭配在一起,为什么git项目在小型项目中没有svn使用方便,svn在大型项目中拖慢开发速度。

Maven

我们都了解maven是对java的jar包进行管理的工具

我比较喜欢把项目的Entity跟common的工具包打包成jar包,上传到maven的nexus(私)服务器,maven服务器分为两个,一个就是我们自己配置的私服nexus等,还有就是远程服务器(外网上面)的,比如阿里云,maven自己有默认的远程仓库。远程服务器跟私服功能上面没有区别,只是看我们有没有权限。我们换个角度,如果你是阿里云里面的员工,有阿里云私服的账号跟上传jar包权限,这不就是自己公司里面的私服了吗。这儿我给个maven解压后文件简单setting代码

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
	
	<!--这个是你设置本地仓库的路径,从远程仓库或者从私服上下载下来的jar包等会存放在这个路径下,所有使用该maven的maven项目都共同使用这个里面的jar包。-->
	<localRepository>D:/Maven/repository</localRepository>

	
	<pluginGroups>
		
	</pluginGroups>

	
	<proxies>
		
	</proxies>

	
	<servers>
		<!--这个是给你的私服用的,是你在maven项目pom文件上distributionManagement标签上指定的用来多打jar包提交的。提交需要用户名密码的,maven就指定用下面的账号-->
		<server>
			<id>releases</id> <!--release 版本使用账户,id跟pom上面的id要对应-->
			<username>admin</username>
			<password>admin123</password>
		</server>
		<server>
			<id>snapshots</id>  <!--snapshots使用的账户,id跟pom上面的id要对应,
			如果pom文件id不对应,mvn发布会失败,也就是maven生命周期最后的那个操作-->
			<username>admin</username>
			<password>admin123</password>
		</server>
		

		
	</servers>

	
	<mirrors>
		<!--远程镜像族,我设置的是第一个阿里云,第二个是我的私有仓库,第三个是maven默认的远程仓库,如果本地仓库没有jar包,
		jar包下载它会先找阿里云中下载(第一个原因:访问速度快而且大多数都不是用自己打的jar包),如果阿里云上面没有就会找我的私有仓库,两者都没有最后看国外的maven仓库(访问慢但是全),-->
		<mirror>
		
			<id>nexus-aliyun</id>
	        <mirrorOf>central</mirrorOf>
	        <name>Nexus aliyun</name>
	        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
			
		</mirror> 
		<mirror>
			<id>my-3rd</id>
	        <mirrorOf>My-repository</mirrorOf>
	        <name>我的仓库</name>
			<!--我用的局域网IP地址,呵呵,不敢放自己服务器ip地址呀-->
	         
			 <url>http://192.168.151.1:8081/nexus/content/groups/BiYeSeJi/</url>
			
		</mirror> 
		
		<mirror>
			<id>mvnrepository</id>
	        <mirrorOf>mvn</mirrorOf>
	        <name>mvn仓库</name>
	        <url>http://www.mvnsearch.org/maven2</url>
		</mirror> 
	
	</mirrors>

	
		<profiles>
		<!--因为我上面配置了mirror,多以这个配置里面repository的id跟url无效。但这个配置必须要,我需要<releases>跟<snapshots>标签里面的内容。
		如果你了解maven,会发现其实我下面配置重复了,id为My-repository其实没有必要,可以上吊,url设置多少你随意。-->
        <profile>
            <id>nexus</id>
            <repositories>
                <repository>
                    <id>central</id>
                    <url>http://nexus-releases</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
                <repository>
                    <id>My-repository</id>
                    <url>http://My-repository</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>central</id>
                    <url>http://nexus-releases</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
                <pluginRepository>
                    <id>My-repository</id>
                    <url>http://My-repository</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>
	<!--上面profile可以配置多个,但是激活的只有一个-->
    <activeProfiles>
        <activeProfile>nexus</activeProfile>
    </activeProfiles>
		
</settings>

最近使用maven搭建项目,在pom.xml文件中没有配置过里面的内容详情查看,就是因为这个,我打的jar包只有字节码文件,也不能打resource包,我自己本我朋友想用太困难,因为class字节码里面没有注释。我们要注释就需要resource包,自己工具指定resource路径,或者你像我现在

<resources>
      <resource>
        <directory>src/main/java</directory>
      </resource>
    </resources>

这样配置,你试试解压这个jar包,一个类有两个文件,一个是.class字节码文件,一个是java文件,java文件可以有注释了吧,通过工具手动指定就行了,不过我不建议你这样玩,还是通过上面的博客打resource包好。

Git和SVN

git、svn和maven的比较:git是项目管理工具,svn也是项目管理工具,git跟svn设计作用类似,他们两个跟Maven区别就很大了,他们两个是管理项目(其中很多文件,是文件夹),Maven只针对jar包,jar包是压缩文件,可以轻松共享。

git跟svn之间比较:git繁琐,至少学习成本比svn高,但是功能强大;svn原理简单,锁让人等的很烦,不用锁开发人数过多的情况下,并且不使用其它工具提供冲突解决方案,每天很多时间用来解决冲突去了。svn差别其实在开发人员比较少,团队管理和项目管理没有太规范的情况下是优于git管理项目。但是,当团队项目迭代较快,项目穿插(各个模块时间不平衡,比如,测试和开发时间不同步的团队)较多的情况,svn就有点坑了,虽然可以建立分支,但是,没有像git本地保存功能总会让人手忙脚乱。

我在第一个上班的公司就是使用svn管理项目的,公司这个团队的人不多,就几个人,但是公司项目管理一团乱,需求各种更新,还有同时测试,我还要同时往后面完成需求,我一次要维护几个版本,虽然用了IDEA工具减轻了负担,心中还是十万个马在奔腾。针对这种情况,使用git,我可以直接在本地建立分支,在不同分支之间切换,这是多爽,而svn,我没有服务器分支权限,只能哭着用IDEA历史进行比较,用完后再还原。

现在的公司使用的git[2019]使用的git来管理项目的。整体的对比svn来说我很喜欢git的方式,因为git只需要功能做完后合并,每个分支就像功能模块一样,这是非常爽的。像git -stash和变基,都是为本地考虑的功能。

本人表达能力有限,不喜勿喷。



https://www.xamrdz.com/lan/5j61963272.html

相关文章: