zoukankan      html  css  js  c++  java
  • Maven使用

    Maven使用

    命名:

    <groupId>cn.onlinepc.项目组</groupId>
    <artifactId>项目名称</artifactId>
    <version>版本</vernsion>
    

    添加依赖:
    所谓依赖就是开始时候所需要的包

    	<dependency>
    	  <groupId>org.springframework</groupId>
    	  <artifactId>spring-web</artifactId>
    	  <version>3.0.6.RELEASE</version>
    	</dependency>
    

    添加中心库: 所谓中心库就是包存放的地方或者是代理的地方

    	<repository>
    	    <id>gamehall</id>
    	    <name>Repository hosting the gamehall</name>
    	    <url>http://192.168.75.11:8080/nexus-webapp-1.9.2.3/content/groups/public</url>
    	    <releases>
    		<enabled>true</enabled>
    		<updatePolicy>never</updatePolicy>
    		<checksumPolicy>warn</checksumPolicy>
    	    </releases>
    	    <snapshots>
    		<enabled>false</enabled>
    	    </snapshots>
    	    <layout>default</layout>
    	</repository>
    

    添加依赖包时,只需要添加你所需要的那个依赖包就可以了,这个依赖包的相关依赖可以不用加,maven默认会自动帮我们加好


    添加自己依赖包时,可以上传到本地仓库,也可以上传到nexus,下面是一个例子

    mvn install:install-file -Dfile=fckeditor-java-core-2.6.jar -DgroupId=fckeditor-java-core 
    -DartifactId=fckeditor-core -Dversion=2.6 -Dpackaging=jar -DgeneratePom=true
    

    当然nexus提供界面操作上传
    maven上传到nexus

     mvn deploy:deploy-file -DgroupId=org.apache.hadoop  -DartifactId=hbase -Dversion=1.0 
    -Dpackaging=jar -Dfile=[path to file] -Durl=[url] -DrepositoryId=[id]
    

    公司内部需要走代理访问外部的,所以在设置的时候也要加上代理 修改setting.xml文件

        <proxy>
          <id>onlinepc</id>
          <active>true</active>
          <protocol>http</protocol>
          <host>192.168.11.254</host>
          <port>8080</port>
        </proxy>
    

    当然一些模块化的结构管理,不同开发环境的设置和插件的使用等等都可以参考Maven的官方网站 http://maven.apache.org/

    pom文件

    Maven基本所有工作都是对pom.xml文件来进行操作的


      <repositories>
        <repository>
          <releases>
            <enabled>false</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
            <checksumPolicy>fail</checksumPolicy>
          </snapshots>
          <id>codehausSnapshots</id>
          <name>Codehaus Snapshots</name>
          <url>http://snapshots.maven.codehaus.org/maven2</url>
          <layout>default</layout>
        </repository>
      </repositories>
    
    • enabled表示这两个版本是否可用,snapshots是快照版,开发过程中经常使用。releases是发布版,部署上线的时候用
    • updatePolicy 提示这个仓库的依赖包是否有更新的
    • checksumPolicy 校验需要
    • url是远程库的地址

    在游戏大厅2里面使用nexus来代理,作为公司内部使用的仓库中心。


    <distributionManagement>
     <downloadUrl></downloadUrl>
    <repository></repository>
     <site></site>
    </distributionManagement>
    
    • distributionManagement部署管理
    • downloadUrl提供别人下载你项目的url
    • repository项目部署的地方
    • site项目文文档部署的地方(游戏大厅使用这样来部署文档的,采用ftp方式上传)

    这样就很好的控制项目的部署,当然有很多种方式可以处理这样的问题,可以写一个插件处理,也可以结合hudson使用脚本处理(游戏大厅暂时使用这种方式来处理)。


     <build>
        <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
        <scriptSourceDirectory>${basedir}/src/main/scripts</scriptSourceDirectory>
        <testSourceDirectory>${basedir}/src/test/java</testSourceDirectory>
        <outputDirectory>${basedir}/target/classes</outputDirectory>
        <testOutputDirectory>${basedir}/target/test-classes</testOutputDirectory>
        ...
      </build>
    

    观察这些都是输出路径,但是一般我们会按照maven的规范来做。


    <properties>
        <spring.version>2.5.6</spring.version>
    </properties>
    
    • 对于一些像spring的多个包的,我们需要保存版本一致,可以加上properties
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
          </dependency>
      
    • 依赖版本可以写属性读取的方式

    把spring抽离出来,单独作为一个项目来处理,写一个新的pom

    <project>
    <modelVersion>4.0.0</modelVersion>
      <groupId>cn.onlinepc.commons</groupId>
      <artifactId>spring-dependencies-module</artifactId>
      <packaging>pom</packaging>
      <properties>
        <spring.version>2.5.6</spring.version>
        </properties>
      <version>${spring.version}</version>
      
        <dependencies>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-web</artifactId>
          <version>${spring.version}</version>
        </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>${spring.version}</version>
            </dependency>		
    
    		        <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-tx</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
            </dependency>		
        </dependencies>
    </project>
    

    运行mvn install 弄好到本地,或者上传到私服

       <properties>
        <springversion>2.5.6</springversion>
       </properties>
        <dependencies>
          ......
         <dependency>
          <groupId>cn.onlinepc.commons</groupId>
          <artifactId>spring-dependencies-module</artifactId>
          <type>pom</type>
          <version>${springversion}</version>
         </dependency>
         ........
        </dependencies>
    

    引入到项目里面就可以了,同样可以使用在不同应用之间的一些client包的调用



    项目上传到nexus上,pom.xml配置

      <distributionManagement>
          <repository>
    	  <id>snapshots</id>
    	  <name>pcgroup repository</name>
    	  <url>http://192.168.75.11:8080/nexus-webapp-1.9.2.3/content/repositories/snapshots/</url>
          </repository>
      </distributionManagement>
    

    setting.xml配置

        <servers>
    	<server>
    		<id>snapshots</id>
    		<username>admin</username>
    		<password>admin123</password>
    	</server>
        </servers>
    

    pom.xml与setting.xml的id要匹配,提供上传授权用的
    maven命令

    mvn clean package deploy
    

    下载依赖包的源码


    1. 使用maven命令:mvn dependency:sources 下载依赖包的源代码。
    2. 使用参数: -DdownloadSources=true 下载源代码jar。 -DdownloadJavadocs=true 下载javadoc包。
    mvn dependency:sources -DdownloadSources=true -DdownloadJavadocs=true
    
  • 相关阅读:
    7. Scrapy的高级用法
    6. Scrapy的基本用法
    5. 基于Selenium实现爬虫
    4. 异步爬虫
    3. 数据解析
    2. requests的使用
    1. 爬虫概述
    03-Servlet初识
    Flask框架基础(1)
    登录mysql时,报错ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
  • 原文地址:https://www.cnblogs.com/joshul/p/6214413.html
Copyright © 2011-2022 走看看