一个新手对java网站项目管理的理解,浅谈MVN,Git,SVN

来源:互联网 发布:上汽进出口 知乎 编辑:程序博客网 时间:2024/06/06 19:56

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

开始

文章概述:

文章讲解maven,git的搭配,两个都是项目管理工具,为什么要搭配在一起,为什么git项目在小型项目中累赘,小型项目使用svn。还有对maven自己的简单setting。

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也是项目管理工具,git跟svn设计作用类似,他们啷个跟Maven区别就很大了,他们两个是管理项目(其中很多文件,是文件夹),Maven只针对jar包,jar包是压缩文件,可以轻松共享。git跟svn之间比较。git繁琐,功能强大,svn原理简单,锁让人等的很烦。svn项目管理通过锁(得到锁,获得锁)来实现项目管理的,git是通过分支来实现的。锁有优点,也有缺点,优点就是当开发人员少的时候,只要正确使用都不会造成保本冲突,交流方面需要没有git的多,缺点就是锁的特性,同一时间,一个文件只能有一个人能进行正常编辑,如果项目人数过多,有些配置文件需要多人频繁操作,一人操作,其他人都只能等待。就会造成开发迟缓。git跟svn相反,你的优点就是我们缺点,你的缺点就是我的优点。
刚开始我想git跟svn结合的,整体用git,将一个大型项目的一个功能分开成一个分支,当分支分小了之后,两个人同时做这个功能,我们就可以对这个分了数次的分支进行svn管理,当完成之后统一提交分支。(注意:这只是我的构想,知识水平有限,有错请告诉我一下,我会删掉,大家进步。我没有做过大型项目,现在刚毕业大学生,呵呵

原创粉丝点击