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

目录

     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 即可。

    


   3.用Eclipse创建Maven Web项目

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

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

       

       这边Packaging选择 pom

        

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

      

     

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

   

 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文件

          

       settings.xml文件

           

   

  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. <?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(每日,默认值),interval:X(这里X是指分钟),或者never(从不);checksumPolicy:当Maven验证构件校验文件失败时该怎么做fail(失败)或者warn(告警)

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

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

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

      


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

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

     


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

    这时JAR打包好了

     

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

     

     


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

     


  


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


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

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

    

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

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

     


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

  

   


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值