`
longgangbai
  • 浏览: 7339834 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

maven定义的一个重要原则

阅读更多

   在企业级别的项目中依赖关系比较复杂时必须处理好,各个项目的依赖的关系。

公共项目中POM配置如下:

 

<project xmlns="http://maven.apache.org/POM/4.0.0"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

 

 <modelVersion>4.0.0</modelVersion>
 <groupId>com.unutrip.common</groupId>
 <artifactId>unutrip-common-service</artifactId>

  <!---定义生成包的类型-->
 <packaging>jar</packaging>
 <name>unutrip-common-service</name>
 <url>http://XXXXXX:8080/unutrip-common-service</url>


 <parent>
  <groupId>com.unutrip</groupId>
  <artifactId>unutrip-parent</artifactId>
  <version>1.0-SNAPSHOT</version>
 </parent>


<!-- <properties>-->
<!--  <env>develop</env>-->
<!-- </properties>-->

 <dependencies>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.5-FINAL</version>
        </dependency>
  <dependency>


   <groupId>com.unusap</groupId>
   <artifactId>unusap-new-remote-no-tiger</artifactId>
   <version>1.0-SNAPSHOT</version>

   <!---定义忽略的类库-->
   <exclusions>
    <exclusion>
     <groupId>commons-lang</groupId>
     <artifactId>commons-lang</artifactId>
    </exclusion>
    <exclusion>
     <groupId>commons-collections</groupId>
     <artifactId>commons-collections</artifactId>
    </exclusion>
    <exclusion>
     <groupId>org.springframework</groupId>
     <artifactId>spring-web</artifactId>
    </exclusion>
    <exclusion>
     <groupId>org.springframework</groupId>
     <artifactId>spring-aop</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
<!---针对项目的版本变化比较快的项目最好将版本的信息定义在属性元素中,使用时 ${ 版本的名称}-->

  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-core</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-context</artifactId>
   <version>${spring.version}</version>
  </dependency>
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-context-support</artifactId>
   <version>${spring.version}</version>
  </dependency>
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-web</artifactId>
   <version>${spring.version}</version>
  </dependency>
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-test</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-orm</artifactId>
   <version>${spring.version}</version>
  </dependency>
  <dependency>
   <groupId>org.springframework</groupId>
   <artifactId>spring-jdbc</artifactId>
   <version>${spring.version}</version>
  </dependency>

  <dependency>
   <groupId>cglib</groupId>
   <artifactId>cglib-nodep</artifactId>
   <version>2.1_3</version>
  </dependency>
  <dependency>
   <groupId>org.apache.struts</groupId>
   <artifactId>struts2-core</artifactId>
   <version>${struts.version}</version>
   <exclusions>
    <exclusion>
     <groupId>com.sun</groupId>
     <artifactId>tools</artifactId>
    </exclusion>
   </exclusions>
  </dependency>


  <dependency>
   <groupId>org.apache.struts</groupId>
   <artifactId>struts2-convention-plugin</artifactId>
   <version>${struts.version}</version>
  </dependency>
  <dependency>
   <groupId>org.springframework.security</groupId>
   <artifactId>spring-security-core</artifactId>
   <version>${spring.security.version}</version>
   <exclusions>
    <exclusion>
     <groupId>org.springframework</groupId>
     <artifactId>spring-support</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.springframework.security</groupId>
   <artifactId>spring-security-cas-client</artifactId>
   <version>${spring.security.version}</version>
   <exclusions>
    <exclusion>
     <groupId>org.springframework</groupId>
     <artifactId>spring-dao</artifactId>
    </exclusion>
   </exclusions>
  </dependency>
  <dependency>
   <groupId>org.springframework.security</groupId>
   <artifactId>spring-security-core-tiger</artifactId>
   <version>${spring.security.version}</version>
  </dependency>
  <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-core</artifactId>
   <version>3.3.2.GA</version>
  </dependency>
  <dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-simple</artifactId>
   <version>1.5.2</version>
  </dependency>
  <dependency>
   <groupId>javassist</groupId>
   <artifactId>javassist</artifactId>
   <version>3.4.GA</version>
  </dependency>


  <!--
   <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate</artifactId>
   <version>${hibernate.version}</version>
   <exclusions>
   <exclusion>
   <groupId>javax.transaction</groupId>
   <artifactId>jta</artifactId>
   </exclusion>
   <exclusion>
   <groupId>commons-collections</groupId>
   <artifactId>commons-collections</artifactId>
   </exclusion>
   </exclusions>
   </dependency>
  -->


  <dependency>


   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-annotations</artifactId>
   <version>${hibernate.annotation.version}</version>
   <exclusions>
    <exclusion>
     <groupId>org.hibernate</groupId>
     <artifactId>hibernate</artifactId>
    </exclusion>
   </exclusions>
  </dependency>


  <dependency>


   <groupId>commons-lang</groupId>
   <artifactId>commons-lang</artifactId>
   <version>2.4</version>
  </dependency>
  <dependency>
   <groupId>commons-beanutils</groupId>
   <artifactId>commons-beanutils</artifactId>
   <version>1.8.0</version>
  </dependency>
  <dependency>
   <groupId>commons-codec</groupId>
   <artifactId>commons-codec</artifactId>
   <version>1.3</version>
  </dependency>
  <dependency>
   <groupId>commons-collections</groupId>
   <artifactId>commons-collections</artifactId>
   <version>3.2</version>
  </dependency>
  <dependency>
   <groupId>org.directwebremoting</groupId>
   <artifactId>dwr</artifactId>
   <version>2.0.3</version>
  </dependency>
  <dependency>
   <groupId>org.apache.ant</groupId>
   <artifactId>ant</artifactId>
   <version>1.7.0</version>
   <scope>compile</scope>
  </dependency>


  <dependency>
   <groupId>org.json</groupId>
   <artifactId>json</artifactId>
   <version>20090211</version>
  </dependency>


  <dependency>
   <groupId>commons-httpclient</groupId>
   <artifactId>commons-httpclient</artifactId>
   <version>3.1</version>
  </dependency>


  <dependency>
   <groupId>net.spy</groupId>
   <artifactId>memcached</artifactId>
   <version>2.0.1</version>
  </dependency>


  <dependency>
   <groupId>net.spy</groupId>
   <artifactId>spy</artifactId>
   <version>2.4</version>
  </dependency>


  <dependency>
    <groupId>jaxen</groupId>
    <artifactId>jaxen</artifactId>
    <version>1.1.1</version>
    <exclusions>
     <exclusion>
      <groupId>dom4j</groupId>
    <artifactId>dom4j</artifactId>
     </exclusion>
     <exclusion>
      <groupId>jdom</groupId>
    <artifactId>jdom</artifactId>
     </exclusion>
     <exclusion>
      <groupId>xml-apis</groupId>
    <artifactId>xml-apis</artifactId>
     </exclusion>
     <exclusion>
      <groupId>xerces</groupId>
    <artifactId>xercesImpl</artifactId>
     </exclusion>
     <exclusion>
      <groupId>xom</groupId>
    <artifactId>xom</artifactId>
     </exclusion>
    </exclusions>
  </dependency>


  <dependency>
    <groupId>opensymphony</groupId>
    <artifactId>quartz-all</artifactId>
    <version>1.6.3</version>
  </dependency>
  <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.3</version>
    <scope>provided</scope>
  </dependency>
  <dependency>
   <groupId>javax.mail</groupId>
   <artifactId>mail</artifactId>
   <version>1.4</version>
  </dependency>
  <dependency>
   <groupId>com.microsoft.sqlserver</groupId>
   <artifactId>sqljdbc4</artifactId>
   <version>1.0</version>
  </dependency>
 </dependencies>

 <scm>
  <connection>
   scm:cvs:pserver:danson.liu@192.168.2.210:/usr/cvsroot:unutrip-common-service
  </connection>
  <developerConnection>
   scm:cvs:pserver:danson.liu@192.168.2.210:/usr/cvsroot:unutrip-common-service
  </developerConnection>
 </scm>
</project>

 

   (1)如果项目中依赖的jar以及一些公共的信息必须在父POM中定义,

   用于减少其他子项目的POM中定义,这样可以减少项目不同类库依赖的,造成版本的之间的差异 的原因,使 项目比较换乱。

 

  (2)将兄弟项目的版本如:hibernate-annonation和hibernate-core的版本必须一致,Spring的各类库中版本必须一致,最好将版本信息定义在属性的配置中。

 

 

查看项目中各个类库的依赖关系:

mvn   dependency:tree

 

 

maven2 下载依赖包时下载其源代码包

maven2在执行eclipse:eclipse,install等命令时,默认不下载sources包。

有两个方法可以获得所依赖包的源码包:

 

1、使用命令 mvn dependency:sources

2、增加参数 mvn eclipse:eclipse -DdownloadSources=true

 

 

 

 

 

分享到:
评论

相关推荐

    maven3.0 maven3.0

    Maven 3.0是Maven的一个重要版本,它引入了许多改进和新特性,旨在提高开发效率,增强构建过程的可配置性和稳定性。 ### Maven 3.0 的主要改进 1. **并行构建优化**:Maven 3.0 引入了并行构建功能,允许同时编译...

    maven3.6maven3.6maven3.6

    在本文中,我们将深入探讨Maven 3.6版本,这是Maven的一个重要迭代,带来了许多改进和优化。 Maven的核心概念是基于项目对象模型(Project Object Model,POM)。POM是一个XML文件,包含了项目的配置信息,如依赖...

    maven依赖小例子

    在软件开发领域,Maven是一个广泛使用的项目管理和综合工具,尤其在Java开发中扮演着重要角色。本示例旨在向你展示如何在Maven项目中处理依赖管理,这对于理解和优化你的开发流程至关重要。 Maven依赖管理是Maven的...

    maven及其maven本地仓库

    Maven通过使用一个统一的项目对象模型(Project Object Model,POM)来描述项目,并提供了自动化构建生命周期的框架。在Java开发中,Maven几乎已经成为标准的构建工具,它通过依赖管理和项目信息管理,使得开发者...

    maven-3.2.5工具下载

    总之,Maven-3.2.5作为一个重要的Java构建工具,以其强大的依赖管理和自动化构建能力,极大地简化了开发者的工作,使得项目管理更加规范和高效。无论是小型项目还是大型企业级应用,都可以受益于Maven的便利。通过...

    Maven 3.5.0版本资源

    Maven 3.5.0是该工具的一个重要版本,引入了一些新特性和改进。 ** Maven 3.5.0 版本特点 ** 1. **性能优化**:Maven 3.5.0对缓存机制进行了优化,提高了构建速度,尤其是在处理大型项目和多模块项目时更为明显。 ...

    maven入门.docx

    Maven 是一个流行的项目管理和整合工具,广泛应用于 Java 开发领域。它为开发者提供了完整的构建生命周期框架,帮助开发者简化项目的构建过程,使得项目的管理和构建更加标准化、自动化。 **为什么选择 Maven?** ...

    maven-3.2.5

    Maven是Java开发中的一个项目管理工具,它主要负责构建、依赖管理和项目信息管理。本资源为"Maven-3.2.5"版本,这是一个针对JDK6兼容的稳定版本。在2014年发布时,它是Apache Maven项目的主流版本之一,为开发者提供...

    apache-maven-3.6.0.zip

    Apache Maven 是一个强大的项目管理和构建工具,主要用于Java应用程序的开发。它基于项目对象模型(Project Object Model,POM)的概念,能够自动化构建过程,管理依赖关系,并提供一套标准的项目结构。Apache Maven...

    apache-maven-3.5.2.zip

    Apache Maven 是一个强大的项目管理和构建工具,广泛应用于Java开发领域。它通过定义项目的构建过程、依赖关系和项目信息,使得项目构建、配置和管理变得标准化和自动化。Maven 3.5.2 是该工具的一个稳定版本,包含...

    apache-maven-3.6.2.zip

    Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它基于项目对象模型(Project Object Model,POM)的概念,能够管理项目的构建、报告和依赖关系。Maven 3.6.2是Maven的一个特定版本,它包含了各种...

    maven 初始化webapp

    在IT行业中,Maven是一个非常重要的构建工具,主要用于管理Java项目的构建、报告和依赖关系。当我们谈论“maven初始化webapp”时,我们实际上是指使用Maven来创建一个基础的Web应用程序项目结构,这个结构符合Java ...

    Maven心得,简单介绍maven。

    它维护了一个中央仓库,包含了大量开源 Java 库,通过定义依赖关系,Maven 可以自动下载并管理这些库,解决了版本冲突和依赖管理的难题。使用 Maven,开发者只需要在 `pom.xml` 中声明依赖,Maven 就会自动下载并...

    Maven The Complete Reference

    Maven 的一个重要原则是“配置胜于约定”。这意味着 Maven 试图通过默认行为和约定来减少项目配置的数量,从而使开发者能够专注于项目的实际构建逻辑而不是繁琐的配置细节。例如,Maven 假定项目结构和依赖关系遵循...

    Apache Maven(3.3.3)

    Apache Maven 是一个强大的项目管理和构建工具,主要用于Java项目。它基于项目对象模型(Project Object Model,POM),通过一套统一的构建生命周期和依赖管理机制,极大地简化了项目的构建过程。在Maven 3.3.3这个...

    maven 权威指南中文版

    Maven定义了一系列标准集合,这些集合组织成了项目的生命周期。生命周期包括三个阶段:清理(clean)、默认(default)和部署(deploy)。每个阶段都有一系列的目标,开发者可以通过命令行调用特定的目标来执行相关...

    maven3.5.2压缩包

    Maven 3.5.2 是 Maven 的一个重要版本,发布于2017年,包含了对之前版本的改进和修复。此版本的主要改进包括对依赖解析的优化、性能提升以及对Java 9的支持。此外,它还修复了一些已知问题,提高了稳定性和兼容性。 ...

    Maven开发指南中文版

    Maven提供了一个统一的构建命令接口,例如`mvn compile`用于编译源代码,`mvn test`用于运行单元测试等。这些命令遵循一定的生命周期,使得开发者可以轻松地完成构建流程中的各个阶段。 **1.4 基于Maven插件的全局...

    maven3.3.9 官方下载要的下载拿走

    Maven使用一个标准化的项目对象模型(Project Object Model,POM),通过XML格式定义项目的配置信息,使得项目的构建过程可以自动化进行。 ** Maven 3.3.9 版本 ** Maven 3.3.9是Maven的一个稳定版本,发布于2015...

    apache-maven-3.8.5-bin.zip

    Apache Maven 是一个强大的Java项目管理工具,它基于项目对象模型(Project Object Model,POM)的概念,能够自动化构建、依赖管理和项目信息管理。Maven 3.8.5 是该工具的一个版本,提供了许多增强的功能和修复了...

Global site tag (gtag.js) - Google Analytics