• POM添加规范


    把  Maven 的系统文件下载并保存。 例如我的: D:NBProjectapache-maven-2.2.1

    设置环境和变量 。我配置了一个 bat 文件。 执行后, 相关的环境变量就配置好了。

    C代码  收藏代码
    1. ECHO OFF  
    2.   
    3. SET JAVA_HOME=D:Program FilesJavajdk1.6.0  
    4.   
    5. SET M2_HOME=D:NBProjectapache-maven-2.2.1  
    6.   
    7. SET PATH=%PATH%;%M2_HOME%in  
    8.   
    9. ECHO 准备执行测试Maven的版本信息.....  
    10.   
    11. PAUSE  
    12.   
    13. mvn -v  

     然后新建一个文件夹, 建立 pom.xml 文件 。 规范 :

     groupId 定义了你的公司和组织的信息 。 比如,你的公司是 mycom , 项目是  myapp 那么,最好就定义

    <groupId>com.mycom.myapp</groupId>

    artifactId  就定义为项目的名称, 在我们项目中,如果和项目名称不一致,就导致Maven不能编译,

    <artifactId>travel-hotel-admin</artifactId>

     版本定义:

    <version>2.0.0-SNAPSHOT</version>

     SNAPSHOT 表示是快照版本, 尚在开发中的不稳定版本 。 Maven 遇到这种标记的版本号时, 每次都会去中央库取最原始的 Jar 包 。

    <packaging>war</packaging>

    打包类型   jsr war pom  它们的打包执行的命令不一样.

    我们源代码最好也就按照 groupId 定义的名称,包名就定义为   com.mycom.myapp.xxxxxxx.xxxxxxxx

    Eclipse中的项目还是包依赖:

    比如: 项目中,包含这个依赖:


            <dependency>
                <groupId>com.woyo.travel</groupId>
                <artifactId>travel-common-server-api</artifactId>
                <version>2.0.0-SNAPSHOT</version>
            </dependency>

    而且, Eclpse 也打开了这个工程,  那么Eclipse就会依赖这个工程.  如果这个工程被关闭了, 那么,就会去本地仓库中查找所依赖的Jar包。此时, 就是Jar包依赖了。 有时候,

    POM 工程的继承:

    通过在父工程中定义好 版本号, groupId ,version 等参数, 继承的工程不用定义这些参数,就会自动继承。

    travel/pom.xml

    Xml代码  收藏代码
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    3.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
    4.     <modelVersion>4.0.0</modelVersion>  
    5.     <groupId>com.xxxxxxxxx.travel</groupId>  
    6.     <artifactId>travel-hotel</artifactId>  
    7.     <packaging>pom</packaging>  
    8.     <name>travel hotel Parent pom.xml</name>  
    9.     <version>2.0.0-SNAPSHOT</version>  
    10.     <organization>  
    11.         <name>travel</name>  
    12.         <url>http://hotel.travel.woyo.com</url>  
    13.     </organization>  
    14.       
    15.     <modules>  
    16.         <module>travel-hotel-admin</module>  
    17.         <module>travel-hotel-cc</module>  
    18.     </modules>  
    19.       
    20.     <build>  
    21.         <plugins>  
    22.             <plugin>  
    23.                 <groupId>org.apache.maven.plugins</groupId>  
    24.                 <artifactId>maven-compiler-plugin</artifactId>  
    25.                 <configuration>  
    26.                     <source>1.6</source>  
    27.                     <target>1.6</target>  
    28.                     <encoding>UTF-8</encoding>  
    29.                 </configuration>  
    30.             </plugin>  
    31.             <plugin>  
    32.                 <groupId>org.apache.maven.plugins</groupId>  
    33.                 <artifactId>maven-resources-plugin</artifactId>  
    34.                 <configuration>  
    35.                     <encoding>UTF-8</encoding>  
    36.                 </configuration>  
    37.             </plugin>  
    38.         </plugins>  
    39.     <resources>  
    40.       <resource>  
    41.         <directory>src/main/resources</directory>  
    42.         <filtering>true</filtering>  
    43.       </resource>  
    44.     </resources>  
    45.     <filters>  
    46.       <filter>${user.home}/travel_hotel.properties</filter>  
    47.     </filters>  
    48.     </build>  
    49.   
    50.     <properties>  
    51.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
    52.         <!-- 主要依赖库的版本定义 -->  
    53.         <spring.version>2.5.6</spring.version>  
    54.         <spring.security.version>2.0.5.RELEASE</spring.security.version>  
    55.         <struts2.version>2.2.1</struts2.version>  
    56.         <ibatis.version>2.3.4.726</ibatis.version>  
    57.         <mysql-driver.version>5.1.12</mysql-driver.version>  
    58.         <slf4j.version>1.6.1</slf4j.version>  
    59.   
    60.         <!-- Plugin的属性定义 -->  
    61.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
    62.         <urlrewritefilter.version>3.1.0</urlrewritefilter.version>  
    63.     </properties>  
    64.  <dependencyManagement>  
    65.     <dependencies>  
    66.         <dependency>  
    67.             <groupId>junit</groupId>  
    68.             <artifactId>junit</artifactId>  
    69.             <version>4.4</version>  
    70.             <scope>test</scope>  
    71.         </dependency>  
    72.                 ..............................................  
    73.     </dependencies>  
    74.  </dependencyManagement>  
    75. </project>  

    子工程定义在

    travel/travel-hotel/pom.xml

    这样的目录结构, 子工程的 pom 文件会自动在../pom 得到父工程的pom文件定义,否则需要定义

    <relativePath>../travel/pom.xml</ relativePath>

    才能找到

    Xml代码  收藏代码
    1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
    2.     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
    3.     <modelVersion>4.0.0</modelVersion>  
    4.     <parent>  
    5.         <artifactId>travel-hotel</artifactId>  
    6.         <groupId>com.woyo.travel</groupId>  
    7.         <version>2.0.0-SNAPSHOT</version>  
    8.     </parent>  
    9.     <groupId>com.woyo.travel</groupId>  
    10.     <artifactId>travel-hotel-admin</artifactId>  
    11.     <version>2.0.0-SNAPSHOT</version>  
    12.     <packaging>war</packaging>  
    13.     <name>travel-hotel-admin</name>  
    14.     <dependencies>  
    15.         <dependency>  
    16.             <groupId>com.woyo.travel</groupId>  
    17.             <artifactId>travel-common-server-api</artifactId>  
    18.             <version>2.0.0-SNAPSHOT</version>  
    19.         </dependency>  
    20.     </dependencies>  
    21.   
    22. </project>  

     

     运行了  Maven install 命令后 , 会在本地 repository 仓库生成 对应的文件.

    如果是打包成 war 包, 会自动把相应的 资源文件 , 依赖的 jar 包(包括传递依赖的)全部 Copy 到web-inf 目录,

    衍生问题:

    Maven 中 Jar 包传递依赖的问题:

    Maven 2 的一个很明显的优势就是jar 包传递依赖的解决。

    如果你使用的是m2eclipse 插件,那么最简单的找到传递依赖冲突的插件的方法,就是在Eclipse 中,打开pom.xml时,使用open with Maven Pom Editor,查看Dependency Hierachy,输入想查找的jar包名,可以看到它的父级依赖关系,即它是谁的传递依赖,有几个jar包依赖到这个jar包,分别使用的是什么版本都可以看到。

  • 相关阅读:
    本地Git连接远程Gitlab
    C++ insert into table in bulk
    C++ mysql
    C++ cppconn insert into mysql tables
    Ubuntu create database and tables in mysql
    C++ insert into mysql Got a packet bigger than 'max_allowed_packet' bytes (MySQL error code: 1153, SQLState: 08S01 )
    C++ mysqlclient
    Lost connection to MySQL server during query (MySQL error code: 2013, SQLState: HY000 )
    IOS – OpenGL ES 设置图像滤镜 GPUImageAmatorkaFilter
    【设计模式学习笔记】单例模式
  • 原文地址:https://www.cnblogs.com/hkgov/p/12520967.html
Copyright © 2020-2023  润新知