Maven的pom.xml文件结构之基本配置dependencies和dependencyManagement

来源:互联网 发布:数据建模和数据挖掘 编辑:程序博客网 时间:2024/05/09 05:46

1.Maven项目的dependencies

Maven项目的构建往往要依赖于第三方的类库。通过<dependencies>可以给出Maven项目所依赖的第三方类库,示例如下:

  <dependencies>    <dependency>      <groupId>junit</groupId>      <artifactId>junit</artifactId>      <version>4.0</version>      <type>jar</type>      <scope>test</scope>      <optional>true</optional>    </dependency>    ...  </dependencies>
说明:

  • 对于一个依赖<dependency>,首先要给出被依赖的Maven构件(被依赖的只能是Maven构件)的具体标识信息,如groupId、artifactId和version(可以是一个范围)。为了进一步区分Maven构件的内容(如source、bin和doc),往往还会给出Maven构件的classifier。
  • type,打包类型,默认jar
  • scope,被依赖的Maven构件在classpath中的可访问范围
    • compile,默认值,被依赖的Maven构件在compile、runtime和test的时候都可以在classpath中找到
    • provided,被依赖的Maven构件在compile和test的时候都可以在classpath中找到,在runtime的时候由JDK或容器提供
    • system,被依赖的Maven构件在compile和test的时候都可以在classpath中找到,在runtime的时候必须显式将JAR加入到classpath中
    • runtime,被依赖的Maven构件在runtime和test的时候都可以在classpath中找到,在compile时不是必须的
    • test,被依赖的Maven构件在test的时候可以在classpath中找到,在compile和runtime时不是必须的
  • systemPath,只有当<scope>system</scope>时才设置,否则构建时会报错。该值必须是一个绝对路径,可以通过环境变量给出具体的绝对路径
  • optional,当前Maven项目的构件被其他项目依赖,此处被依赖的Maven构件相对于其他项目来说是不必须的
  • exclusions,将一个被依赖的Maven构件中的部分类库,从classpath中去掉


2.Maven项目的dependencyManagement
<dependencyManagement>主要用于存在父子继承的Maven项目中。在父项目中通过<dependencyManagement>设置被依赖的Maven构件,在子项目中设置被依赖的Maven构件时,只要给出构件的groupId和artifactId,而version则默认引用父项目的设置。


1 0
原创粉丝点击