仅供比克maven日常使用

最前面

maven基础结构

maven 项目目录结构

$ MavenProject
|-- pom.xml
|-- src
|   |-- main
|   |   `-- java
|   |   `-- resources
|   `-- test
|   |   `-- java
|   |   `-- resources

说明:一般将java的功能代码,放在main/java下面,而测试代码放在test/java下,这样在运行时,maven才可以识别目录并进行编译。

路径 说明
src/main/java 存放项目.java文件;
src/main/resources 存放项目资源文件;
src/test/java 存放测试类.java文件;
src/test/resources 存放测试资源文件;
target 项目输出目录;
pom.xml Maven核心文件(Project Object Model)

maven 常用命令

maven打包操作

关于profile

根据 profile 配置的位置不同,可以将 profile 分成如下几种。

超级pom

待补充

maven依赖

maven的三套classpath

1.在编译本地项目主代码时需要一套classpath

举例,spring-core以依赖的方式引入classpath

2.在执行测试会使用另一套classpath

举例:Junit

3.在实际运行会使用一套classpath

spring-core需要在此classpath,Junit不需要。

传递依赖机制 传递性依赖冲突时,交由maven解析各个直接依赖的pom,将哪些必要的间接依赖以传递性依赖的形式引入当前项目中。

举例:

A-->B-->C(2.0)
A-->E-->C(1.0)

A同时依赖两个版本的C,产生冲突。

  <dependency>
      <groupId>A</groupId>
      <artifactId>A</artifactId>
      <version>xxxxxxxx</version>
      <exclusions>
        <!--对于依赖冲突,maven自动选择适合的版本-->
          <exclusion>
              <groupId>C</groupId>
              <artifactId>C</artifactId>    
          <exclusion>
      <exclusions>
  </dependency>