Maven使用和私服仓库搭建

1.  maven的工程、jar的默认存放地址可以到maven安装目录的conf下面,打开setting.xml文件,默认存储在Default: ${user.home}/.m2/repository下面。

2.  修改maven工程、jar的默认存放路径:将<localRepository>/path/to/local/repo</localRepository>标签打开,将需要存放的路径改成真是路径,同时将setting.xml复制到需要存放的目录下面。

3.  在myeclipse中安装maven和配置setting文件

4.  Maven的内置隐式变量:${basedir} 项目根目录 ${project.build.directory} 构建目录,缺省为target${project.build.outputDirectory} 构建过程输出目录,缺省为target/classes${project.build.finalName} 产出物名称,缺省为${project.artifactId}-${project.version}${project.packaging} 打包类型,缺省为jar ${project.xxx} 当前pom文件的任意节点的内容

5.  Maven的中央工厂实在maven中lib下面的maven-model-bulider.jar下面的pom.xml的文件中配置的。

6.  Maven模块的之间的依赖,将需要依赖模块进行clean和install,如果在install中报错,需要查询是不是jdk版本引起的问题。

7.  依赖范围scope的属性:

a)  Compile:(默认的依赖范围)在编译和打包的时候打进去。

b)  Provided:编译和测试的时候依赖进去,最后在打war包的时候不会打进去。

c)   Runtime:编译的时候不依赖,但打包、测试的时候依赖,比如jdbc的jar。

d)  Test:只有测试的时候依赖,编译和打包都不需要,比如junit打包的时候就不需要。

8.  Maven的聚合操作:如果不进行聚合操作,每一个模块需要独自clean,如有大量模块就会增加工作量,通过聚合就实现一次clean,所有的模块都可实现clean。只需要新建一个简单的maven项目,新建的类型为pom,在pom.xml中添加<modules>../模块名</module>就实现了聚合。

9.  Maven的继承操作:可将各个模块中pom.xml中公用的一部分配置(比如公用的jar包,公用的模块)放在一个集成的父模块中,可与聚合的模块为同一个模块。

<parent>

<groupId>SoftManger(工程名称)</groupId>

<artifactId>User-All模块名称</artifactId>

<version>0.0.1-SNAPSHOT版本号</version>

<relativePath>../User-All/pom.xml相对路径</relativePath>

</parent>

如果需要将依赖的jar放在父模块中,需要使用dependencyManagement标签,如图:


但是,但是子类中的依赖标签还是需要继续配置,但是版本号与周期号就可以不用配置,如果不继续配置的话,默认会去加载父类中所有的依赖包。如子类中:只需配置这几个属性,其他属性从父模块中查询。

10.        Nexus:maven私服仓库搭建:

a)  Sonatype Nexus 进入官网

b)  将nexus的bin加入到环境变量中

c)   设置nexus的bin中jsw中conf中wrapper.conf文件的jdk中java.exe的位置。wrapper.java.command=C:\ProgramFiles\Java\jdk1.8.0_25\bin\java

d)  安装nexus,可以直接通过命令安装或者点击安装,在cmd中输入nexus install命令安装。

e)  启动nexus服务,可通过服务管理或者命令nexus start命令。

f)    启动后执行http://localhost:8081/nexus进入nexus管理页面,用户名:admin 密码:admin123456

g)  修改密码或者添加用户,可进入nexus系统,点击左侧security中users,可进行添加、删除用户,还能进行当前用户密码修改。

11.        Nexus中各个工厂存放的不同的jar:

a)  Public repositories:将其他工厂加入到这个工厂里,可实现配置一个路径,可从多个工厂获取jar包。

b)  3rd Party:用于上传第三方的jar,比如有些版本的jar在maven中心仓库中没有,需要手动去官网下载好上传到nexus上去。

c)   Apache Snapshots:从apache上现在下来的jar包

d)  Central:接受从中心工厂上下载的jar包

e)  Central M1 shadow :maven1使用的,目前已经不再使用。

f)    Releases:用于接受版本号Releases的jar包

g)  Snapshots:用于接受版本号Snapshots的jar包

12.        Nexus工厂的类型有三种:

a)  Hosted:包含3rd party、releases、snapshots工厂,这三个工厂一般面向我们自己的项目,而不会去面向公网。

b)  Proxy:包含Apache Snapshots、Central

c)   Group:整合其他工厂。

13.        设置nexus工厂:在父工程中的pom.xml中设置

14.        如何在maven的setting.xml中设置nexus工厂:上面的设置太过片面,如果新建的工程不继承父工程,那么就还需要再次配置repositories,所以需要在maven公用的配置文件settings.xml中进行配置。配置方法如下图:

另外还需要设置一个开关:

开关必须跟上面的id匹配,如果jar不往私服上传,请设置user settings。

15.        如何配置maven工厂的镜像:setting.xml中打开mirror标签,如图:

然后将maven-model-bulider.jar下面的pom.xml中央工厂的配置拿出来配置到settings.xml中去,如图:

将中央工厂的url设置成其他的地址,或者不要设置。最后将中央工厂的id打开就行了。如果设置了镜像后,pom文件报错,可能是本地仓库有私服仓库索引中缺少,把本地仓库中的jar包删掉,重新更新maven,同时将私服中所以进行同步。

16.        对开发的模块进行发布步骤:

a)  Pom文件中配置工厂,使用distributionManagement标签。

b)  在setting.xml中设置上传权限。使用server标签就行配置,deployment:用户名deployment,密码:deployment123。

17.        将jar包发布到各自项目的工厂:

a)  在nexus中新建一个工厂。

b)  设置工厂的权限。

c)   设置工厂的用户信息。

d)  将pom文件中distributionManagement标签中url设置成新建的工厂。

e)  Setting.xml中设置上传权限,用户名和密码为刚刚设置的用户信息。

18.        Maven的生命周期,一共有三套生命周期:

a)  Clean:

              i.         pre-clean

            ii.         clean

          iii.         post-clean

b)  Default:

              i.         validate 

            ii.         initialize 

          iii.         generate-sources 

           iv.         process-sources:处理项目主资源、一般是将src/main/resources目录的内容进行变量替换工作后、复制到项目输出的主classpath目录中。 

             v.         generate-resources 

           vi.         process-resources 

         vii.         compile编译/java目录下的Java文件至项目输出的主classpath目录中。 

       viii.         process-classes 

           ix.         generate-test-sources 

             x.         process-test-sources 

           xi.         generate-test-resources 

         xii.         process-test-resources 

       xiii.         test-compile:编译测试源码、一般是编译src/java目录下的Java文件。 

       xiv.         process-test-classes 

         xv.         test:运行测试、测试代码不会被打包或部署 

       xvi.         prepare-package 

     xvii.         package 

   xviii.         pre-intergration-test 

       xix.         integration-test 

         xx.         post-intergration-test 

       xxi.         verify 

     xxii.         install:将包安装到Maven本地仓库。 

   xxiii.         deploy:将包复制到远程仓库 

c)   Site:

              i.         pre-site 

            ii.         site:生成项目站点文档 

          iii.         post-site 

           iv.         site-deploy:将生成的项目站点发布到服务器上 

19.        添加插件,将插件添加到不同的环节中去:

20.        Maven的测试:maven默认运行src/test文件的测试类,但是默认只会测试Test**或**Test的文件,所以需要配置包含的测试类和不进行的测试类,或者配置不需要运行测试类(skip)。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值