maven工程搭建

1,建maven工程,设置仓库路径

选择quickstart

设置包名工程名称

 

仓库路径默认为.m2,自定义如下,先找到maven 的conf 目录下的settings.xml  打开文件搜索localRepository 修改路径

<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository    ----------------默认.m2路径

-->
<localRepository>${user.home}/Documents/lxl/java/jar/Maven/repository</localRepository>

修改完会在preferences 中的local Repository显示最新路径,

 

 选中maven工作右键 更新,将jar下载到本地仓库

 

1,依赖包的查询

所有的依赖都是通过坐标来进行存储(GAV --groupid artifactid version)

有一些网上仓库提供了坐标的查询

mvnrepository.com,www.sonatype.org/nexus

gav写入pom.xml  先查本地库,没有再向网络下载

<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate-core</artifactId>

<version>5.2.10.Final</version>

</dependency>

 

也可以直接在pom.xml中搜索是否本地库有jar

pom.xml 选中dependencies -- add--弹框中输入你要的jar名称 如hibernate

 

修改maven的中央工厂,在maven-model-builer.jar里面 

目录:org.apache/maven/model  文件:pom-xxx.xml 配置了一个central

在自己的应用外面也配置一个central,url指向另外一个仓库即可

 

https://nexus.sourcesense.com/nexus/contnet/repositories/public/

 <pluginRepositories>

    <pluginRepository>

      <id>central</id>

      <name>Central Repository</name>

      <url>https://nexus.sourcesense.com/nexus/contnet/repositories/public/</url>

      <!--  <url>https://repo.maven.apache.org/maven2</url>-->

      <layout>default</layout>

      <snapshots>

        <enabled>false</enabled>

      </snapshots>

      <releases>

        <updatePolicy>never</updatePolicy>

      </releases>

    </pluginRepository>

  </pluginRepositories>

 

依赖 scope,依赖的传递性,A->C B->A  ==>B->C

基于scope依赖范围,默认compile 编译范围,编译打包都会用

test 测试范围 编译打包不用,不会传递

provided 编译测试引用  发布不用 如servlet的jar  在tomcat 中带有这些 如果打包在带上会冲突

runtime 运行时依赖编译不依赖

import 

 

传递引用的冲突问题

  1,a->b1.0 c->b1.1 d->a/c 这时在d的pom中,哪个依赖先写就使用先写的版本 所以d->1.0

   2, a->b1.0 c->b1.1 d->a/c f->d,c 如果路径长短不一致就选择最小路径的 所以f->b1.1

如果希望精确的控制依赖,可以使用依赖的排除功能

 

 

    <dependency>

    <groupId>org.konghao.user</groupId>

    <artifactId>user-log</artifactId>

    <version>0.0.1-SNAPSHOT</version>

    <exclusions>

    <exclusion>

    <groupId>log4j</groupId>

    <artifactId>log4j</artifactId>

    </exclusion>

    </exclusions>

    </dependency>

 

 

 

posted @ 2017-05-01 15:42  lwx64397  阅读(154)  评论(0编辑  收藏  举报