如何查看maven依赖的jar是如何引入的?
maven引入的jar文件如果还依赖于其他的jar文件,那么关联的jar也会引入。有时我们需要知道某个jar包哪个jar包引入的,那么下面的方法会起到作用。
  1. 利用idea可以查看依赖树并且快速查找引入的jar文件,可以按照下图中操作。

    图片描述

 

  1. 使用mvn dependency:tree命令查看依赖树,如下所示。

    [INFO] ------------------------------------------------------------------------
    [INFO] Building algorithm 1.0-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO]
    [INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ algorithm ---
    [INFO] com.huawei.learn:algorithm:jar:1.0-SNAPSHOT
    [INFO] \- org.springframework:spring-context:jar:5.1.6.RELEASE:compile
    [INFO]    +- org.springframework:spring-aop:jar:5.1.6.RELEASE:compile
    [INFO]    +- org.springframework:spring-beans:jar:5.1.6.RELEASE:compile
    [INFO]    +- org.springframework:spring-core:jar:5.1.6.RELEASE:compile
    [INFO]    |  \- org.springframework:spring-jcl:jar:5.1.6.RELEASE:compile
    [INFO]    \- org.springframework:spring-expression:jar:5.1.6.RELEASE:compile
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------

    也可以添加参数output指定输出文件,便于在编辑器中分析,如mvn dependency:tree -Doutput=*.txt
     

maven使用模板创建项目?

maven提供多个超过1000个模板方便我们创建项目,使用模板能够减少我们很多工作量。
使用模板有两种方式。

  1. 在命令行执行命令创建maven项目

    1. mvn archetype:generate;
    2. 选择模板,比如maven-archetype-quickstart;
    3. 输入goupId,artifactId,version,package信息。
  2. 在IDEA中使用模板创建maven项目,较为简单,直接跟着指导一步一步走就可以了。

示例:使用maven-archetype-quickstart可以快速创建一个目录结构如下的Java项目。

└─demo
    └─src
        ├─main
        │  └─java
        │      └─com
        │          └─learn
        └─test
            └─java
                └─com
                    └─learn
maven如何做多模块开发?
  1. 创建如下目录结构

    .
    │  pom.xml
    ├─Api
    │  │ pom.xml
    │  └─src
    │      ├─main
    │      │  ├─java
    │      │  └─resources
    │      └─test
    │          └─java
    ├─Service
    │  │ pom.xml
    │  └─src
    │      ├─main
    │      │  ├─java
    │      │  └─resources
    │      └─test
    │          └─java
    └─Website
        │ pom.xml
        └─src
            ├─main
            │  ├─java
            │  └─resources
            └─test
                └─java
  2. 配置pom文件。通常我们在最外层的pom文件中管理做依赖管理,如用到的jar包的版本号。需要maven认识到Api,Service,Website是项目的模块,需要在外层pom文件配置module标签,如下:

      <modules>
        <module>Api</module>
        <module>Service</module>
        <module>Website</module>
      </modules>

    而我们需要在模块中配置相应模块的依赖等信息。

  这里有一个问题:假如你将项目的接口放在一个模块中,而实现放在另外一个模块中;比如将一个web服务所有的接口
全放在模块Api中,而在模块Service中实现接口,这时是不能直接引用到模块Api中的接口的——毕竟模块的主要
作用是为了解耦,如果能随便引用到,那模块的意义将不再存在!

  那怎么办呢?
  此时我们可以将Api模块打包为jar文件,并执行maven的install命令将这个jar包放到maven仓库中,然后我们在
Service模块的pom文件引用这个jar包,这样就可以实现Service引用Api模块中定义的接口了。
指定JDK的版本
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

水一水
39 声望5 粉丝

总结经验,提升自己