Maven入门

定义

Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(ProjectLifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

Maven库

公司有自建的项目库,项目开发过程中所需要的jar包可以到该http://39.108.117.72:8000/repository/maven-public 搜索相应的jar包下载

约定优于配置

约定优于配置的原则在WebX中有着大量的体现,在习惯使用后确实感觉起来很方便,但是在入门的时候可能会在这方面产生很多疑问,有的时候会感觉莫名其妙的怎么会这样使用呢,然后各种查询xml配置也找不到答案。这是我的个人感觉,因为关于各种约定,没有看到一个规范化的文档给出。 至于Maven的一些约定,如下:

目录 目的
${basedir} 存放 pom.xml和所有的子目录
${basedir}/src/main/java 项目的 java源代码
${basedir}/src/main/resources 项目的资源,比如说 property文件
${basedir}/src/test/java 项目的测试类,比如说 JUnit代码
${basedir}/src/test/resources 测试使用的资源

一个 maven 项目在默认情况下会产生 JAR 文件,另外 ,编译后 的 classes 会放在 ${basedir}/target/classes 下面, JAR 文件会放在 ${basedir}/target 下面。

POM

注意:如果第一次使用Maven,请连接网络,因为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/xsd/maven-4.0.0.xsd">

     <modelVersion>4.0.0</modelVersion>
     <groupId>com.mycompany.helloworld</groupId>
     <artifactId>helloworld</artifactId>
     <version>1.0-SNAPSHOT</version>
     <packaging>jar</packaging>

     <name>helloworld</name>
     <url>http://maven.apache.org</url>

     <properties>
       <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     </properties>

     <dependencies>
       <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>3.8.1</version>
         <scope>test</scope>
       </dependency>
     </dependencies>
    </project>

在 POM 中,groupId, artifactId, packaging, version 叫作 maven 坐标,它能唯一的确定一个项目。有了 maven 坐标,我们就可以用它来指定我们的项目所依赖的其他项目,插件,或者父项目。

Maven依赖管理

在 POM 中,依赖关系是在 dependencies 部分中定义的。在上面的 POM 例子中,用 dependencies 定义了对于 junit 的依赖:

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

传递依赖

是指 maven 会检查被依赖的 jar 文件,把它的依赖关系纳入最终解决的依赖关系链中。

results matching ""

    No results matching ""