5五、Maven高级应用

基础回顾:apache

maven是一个项目管理工具。tomcat

maven的做用一:依赖管理:maven对项目中的jar包的管理过程。传统项目咱们直接把jar包放置在项目中,maven工厂真正的jar包放置在仓库中,项目中只会放置jar包的坐标。maven

仓库的种类:本地仓库,远程仓库,中介仓库工具

仓库之间的关系:当咱们启动一个maven工厂的时候,maven工程会经过pom文件中的jar包的坐标去本地仓库找对应的jar包。默认状况下,若是本地没有对应的jar包,maven工程会自动去中央仓库下载jar包到本地仓库。在公司中,若是本地没有对应的jar包,会先从私服下载jar包(私服须要公司本身建立),若是私服没有jar包,能够从中央仓库下载,也能够从本地上传。测试

maven的做用二:一键构建:maven自身集成了tomcat插件,能够对项目进行编译,测试,打包,安装,发布等操做,分布对应maven的经常使用命令url

maven经常使用命令:clean,compile,test,package,install,deploy插件

maven三套生命周期:清理生命周期,默认生命周期,站点生命周期。代理

清理生命周期:Clean Lifecycle 在进行真正的构建以前进行一些清理工做code

默认生命周期:Default Lifecycle 构建的核心部分,编辑,测试,打包,部署等等server

站点生命周期:Site Lifecycle 生成项目报告,站点,发布站点

注意:三套生命周期是相互独立的。

 

maven解决jar包冲突

方式一:第一声明优先原则:哪一个jar包等坐标在靠上的位置,这个jar包就是先声明的。先声明的jar包坐标下的依赖包,能够优先进入项目中。

方式二:直接依赖:项目中直接导入的jar包,就是该项目的直接依赖包。传递依赖:项目中没有直接导入jar包,能够经过项目直接依赖的jar包传递到项目中去。路径近者优先原则:直接依赖路径比传递依赖路径近,那么最终项目进入的jar包会是路径近的直接依赖jar包

方式三:直接排除:能够经过<exclusions>标签消除传递依赖jar包

 

工程的拆分和聚合:

拆分思想:maven把一个完整的项目,分红不一样的独立模块,这些模块都有各自独立的坐标,哪一个地方须要其中的模块,就直接引用该模块的坐标便可。

集合思想:把拆分零散的模块聚合到一块儿编写一个完整的项目。

做用;解决代码可重用和便于维护

 

工程和模块的区别:

一、工程不等于完整的项目,模块也不等于完整的项目,一个完整的项目看的是代码,代码完整,就能够说这是一个完整的项目和此项目是工程和模块没有关系。

二、工程天生只能使用本身内部的资源,工程天生是独立的,后天能够和其余工程或模块创建关联关系。模块天生不是独立的,模块天生是属于父工程的,模块一旦建立,全部父工程的资源均可以使用

三、父子工程,子模块天生集成父工程,能够使用父工程全部的资源,子模块之间天生是没有任何关系的。

四、父子工程不用创建关系,继承关系是先天的,不须要手动创建的,平级关系的引用叫依赖,依赖是须要后天创建的。

 

父子工程启动方式:

第一种:父工程直接run

第二种:先install父工程,在启动下面的模块

第三种:添加本地tomcat启动,添加工程启动

 

私服:

一、下载安装私服安装包 Nexus  https://www.sonatype.com/oss-thank-you-win64.zip

二、配置Nexus,在etc目录下的nexus-default.properties配置Nexus端口、IP、上下文路径

三、启动服务

hosted:宿主仓库(存放本公司开发的jar包(正式版本 测试版本 第三方:存在版权问题的-Oracle))
proxy:代理仓库(代理中央仓库,apache下测试版本的jar包)
group:组仓库(未来链接组仓库。包含Hosted:宿主仓库,proxy:代理仓库)
virtual:虚拟仓库(被废弃了的仓库)

 

上传Jar包到私服

一、在maven目录下conf/setting.xml配置用户名和密码

<servers>
 <server>
      <id>releases</id> <!--宿主仓库-->
      <username>admin</username>
      <password>admin123</password>
    </server>
    <server>
          <id>snapshots</id><!--宿主仓库-->
          <username>admin</username>
          <password>admin123</password>
    </server>

    </servers>

二、在pom.xml中配置jar包的上传路径

<distributionManagement>
  <repository>
      <id>releases</id>
      <url>http://localhost:8081/nexus/repository/maven-releases</url><!--私服对应url-->
    </repository>
    <snapshotRepository>
      <id>snapshots</id>
      <url>http://localhost:8081/nexus/repository/maven-snapshots</url><!--私服对应url-->
    </snapshotRepository>
  </distributionManagement>

 

从私服下载Jar包

一、在maven目录下conf/setting.xml配置模版

 <profile>
            <!--profile的id-->
      <id>dev</id>
      <repositories>
        <repository>
            <!--仓库id,repositories能够配置多个仓库,保证id不重复-->
          <id>nexus</id>
          <!--仓库地址,即nexus仓库组的地址-->
          <url>http://localhost:8081/nexus/repository/maven-public</url>
          <!--是否下载releases构件-->
          <releases><enabled>true</enabled></releases>
           <!--是否下载snapshots构件-->
          <snapshots><enabled>true</enabled></snapshots>
        </repository>
      </repositories>
     <pluginRepositories>
         <!--插件仓库,maven的运行依赖插件,也须要从私服下载插件-->
        <pluginRepository>
            <!--插件仓库的id不容许重复,若是重复后边配置会覆盖前边-->
          <id>public</id>
          <name>Public Repositories</name>
          <url>http://localhost:8081/nexus/repository/maven-public</url>
        </pluginRepository>
      </pluginRepositories>
    </profile>

二、激活模版,在conf/setting.xml

<activeProfiles> <activeProfile>dev</activeProfile> </activeProfiles>
相关文章
相关标签/搜索