Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)

时间:2021-11-03 00:48:37

目录

     1.简介

     2.安装Eclipse Maven插件

     3.用Eclipse创建Maven Web项目

     4.配置settings.xml 文件并下载项目依赖的JAR,并上传Web项目的api的JAR到Nexus 私服


   1.简介

      Maven、Nexus 私服的安装和配置和Maven的优点Maven和 Sonatype Nexus私服的安装、配置及使用入门已经有介绍了,这里就不在介绍了,今天我们要介绍Maven创建并管理Web项目,方便我们项目的开发和管理。

  2.安装Eclipse Maven插件

      我们要在Eclipse开发Maven项目,所以我们要安装Maven插件,我们这里通过在线安装,通过Eclipse的Help-->Install New Software,在 http 地址:http://m2eclipse.sonatype.org/sites/m2e,把选项勾上,然后下载安装,完成之后重启 Eclipse 即可。

    Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)


   3.用Eclipse创建Maven Web项目

       我们这边创建Maven Web项目,创建了一个Parent项目然后里面包含了一个api(包含Entry和services接口)和一个 console(控制层和视图、services实现等)

      第一步我们先创建Parent项目,右击New-->Maven Project

       Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)

       这边Packaging选择 pom

        Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)

   第二步我们创建JAR类型和WAR类型(Packaging选择JAR类型和WAR类型

      Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)

     

这里我们创建好Maven Web项目 项目目录是这样的

   Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)

 4.配置setting.xml 文件并下载项目依赖的JAR,并上传Web项目的api的JAR到Nexus 私服

   上面创建好项目后,为我们实现配置setting.xml 文件并下载项目依赖的JAR,并上传Web项目的api的JAR到Nexus 私服创建好条件,接下去讲是重点之一

   第一步,我们要配置settings.xml 文件,因为settings.xml 告诉要到哪个Nexus 私服所依赖JAR或者上传到Nexus 私服上的,这个配置settings.xml 只是一部分,我们还要配置pom.xml文件。

      配置settings.xml 文件,首先在Eclipse上配置关联我们自己的settings.xml文件

          Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)

       settings.xml文件

           

   

[java] view plain copyprint?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"  
  3.           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.           xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">  
  5.             
  6.            
  7.           <localRepository>E:\nexus\.m2\repository</localRepository>  
  8.     
  9.     <pluginGroups>  
  10.         
  11.   
  12.         <pluginGroup>org.mortbay.jetty</pluginGroup>  
  13.     </pluginGroups>  
  14.     <proxies>  
  15.     </proxies>  
  16.     <servers>  
  17.         <server>  
  18.             <!--maven发布库的id-->  
  19.             <id>releases</id>  
  20.             <username>admin</username>  
  21.             <password>admin</password>  
  22.         </server>  
  23.   
  24.         <server>  
  25.             <!--maven快照库的id-->  
  26.             <id>snapshots</id>  
  27.             <username>admin</username>  
  28.             <password>admin</password>  
  29.         </server>  
  30.          
  31.     </servers>  
  32.       
  33.     <mirrors>  
  34.         
  35.         <mirror>  
  36.             <id>central.m2</id>  
  37.             <name>one of the central mirrors</name>  
  38.             <url>http://192.168.74.129:8081/nexus/content/groups/public</url>  
  39.             <mirrorOf>*</mirrorOf>  
  40.         </mirror>  
  41.     </mirrors>  
  42.      
  43.     <profiles>  
  44.          
  45.         <profile>  
  46.             <id>dev</id>  
  47.              <activation>  
  48.                 <activeByDefault>true</activeByDefault>  
  49.                 <jdk>1.6</jdk>  
  50.             </activation>           
  51.             <properties>  
  52.                 <!-- 编译器相关信息 -->  
  53.                 <maven.compiler.source>1.6</maven.compiler.source>  
  54.                 <maven.compiler.target>1.6</maven.compiler.target>  
  55.                 <maven.compiler.compilerVersion>1.6</maven.compiler.compilerVersion>  
  56.             </properties>  
  57.             <repositories>  
  58.                 <repository>  
  59.                     <id>public</id>  
  60.                     <name>Public Repositories</name>  
  61.                     <url>http://192.168.74.129:8081/nexus/content/groups/public</url>  
  62.                     <layout>default</layout>  
  63.                     <snapshots>  
  64.                         <checksumPolicy>fail</checksumPolicy>  
  65.                         <enabled>true</enabled>  
  66.                         <updatePolicy>always</updatePolicy>  
  67.                     </snapshots>  
  68.                     <releases>  
  69.                         <checksumPolicy>fail</checksumPolicy>  
  70.                         <enabled>true</enabled>  
  71.                         <updatePolicy>always</updatePolicy>  
  72.                     </releases>  
  73.                 </repository>  
  74.             </repositories>  
  75.             <pluginRepositories>  
  76.                 <pluginRepository>  
  77.                     <id>public</id>  
  78.                     <name>Public Repositories</name>  
  79.                     <url>http://192.168.74.129:8081/nexus/content/groups/public/</url>  
  80.                     <layout>default</layout>  
  81.                 </pluginRepository>  
  82.            </pluginRepositories>  
  83.         </profile>     
  84.     </profiles>  
  85.     <activeProfiles>  
  86.         <activeProfile>dev</activeProfile>  
  87.     </activeProfiles>  
  88. </settings>  

说明:

    1.localRepository 指定本地仓库存储路径,从Nexus 私服上下载JAR下来,保存的地方。

    2.配置远程仓库列表 ;id:远程仓库唯一标识; name:远程仓库名称 url:远程仓库URL。 

       3.enabled:是否使用这个资源库下载这种类型的构件 默认值:true ; updatePolicy:指定下载更新的频率。这里的选项是:always(一直),daily(每日,默认值),intervalX(这里X是指分钟),或者never(从不);checksumPolicy:当Maven验证构件校验文件失败时该怎么做fail(失败)或者warn(告警)

       3.activeProfiles 指定被激活的配置文件。

  第二步:下载项目依赖的JAR

    我们在POM.XML中加入要引入的JAR,Maven会自动的从Nexus 私服下载对应的JAR,我们在localRepository 指定本地仓库存储路径下就可以找到对应的JAR

      Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)


   第三步:我们想把我们的传Web项目的api提供给别人使用时,我们上传到Nexus 私服上供别人去下载使用,这里我介绍使用Maven命令上传,也可以使用手动上传。

    我们在parent项目中POM.XML加入distributionManagement标签指定Nexus 私服的URL

     Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)


   test-maven-api类型是JAR,我们现在要把这个JAR打包并上传到Nexus 私服,首先我们先点击test-maven-api项目右击Run AS->Maven Install

    这时JAR打包好了

     Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)

   我们用Maven命令上传,先点击test-maven-api项目右击Run AS->runconfiguration  然后Maven Build右击New 新建并Goals填入clean deploy

     

     Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)


    然后点击run 运行一下 就可以了,我们在console打印成功并在Nexus 私服上可以查看得到上传成功。

     Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)


  Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)


我们上传上去,方便别人去下载,不用我们每次要使用时,在打包给别人使用。


在这整个过程中,我们碰到的一些错误

  1)我们在上传JAR时报一个错误,就是Nexus 私服的用户名和密码写错了,导致报错上传不了

    Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)

  我们在Eclipse关联的settings.xml中servers中的用户名和密码写对就可以。

  2)我们在POM.XML引入依赖的JAR包时,版本很多时,我们没写版本,这个就会报找不到

     Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)


这时我们要指定使用了哪个版本,这样就不会报找不到这个JAR包

  Maven创建并管理Web项目(上传Web项目的API的JAR到Nexus 私服上)