• Maven


    1、私服配置

    1)连接私服的认证信息。在C:Usersleovo.m2settings.xml中配置私服的访问用户名和密码

      <id>archivaServer</id>
      <username>admin</username>
      <password>admin123</password>

      注:
        a)id 是要认证的服务器名称(可随便取一个),可以配置多个。它是用来标记服务器的,要唯一
        b)username和password是用户名和密码。这里直接在初始化 Archiva 服务器的时候,创建了 admin 用户名和密码
        c)如果要连接多个私服,可以类似地配置多个server,每个server是一个私服的认证信息

    2)私服镜像配置

    <mirror>
        <id>archivaServer</id>
        <mirrorOf>*</mirrorOf>
        <name>MyownRepo2</name>
        <url>http://localhost:8080/repository/internal</url>
    </mirror>

    注:
      a)id 是私服映射的标记,该标记要同 server 中的 id 一样。如果连接私服需要认证信息,Maven 可以通过 id 找对应的 server,用 server 的认证信息进行认证。
      b)mirrorOf 指定哪些内容需要通过私服下载,* 表示所有构件都需要从私服下载。
      c)name 是私服的名称,随意取,方便自己记忆和理解就好。
      d)url 指定私服的 Url,注意格式: http://<私服ip/名称>:<web端口>/reposotory/<仓库 id>

    2、发布配置(在pom.xml中配置)

    <distributionManagement>
        <repository>
        <id>archivaServer</id>
        <url>http://localhost:8080/repository/internal</url>
        </repository>
        <snapshotRepository>
            <id>archivaServer</id>
            <url>http://localhost:8080/repository/snapshots</url>
        </snapshotRepository>
    </distributionManagement>

    注:
      1、上面的信息配置了两个仓库url,一个是repository;另一个是快照repository。每个repository中都有一个 url。
      2、其中 url 就是要发布的私服仓库url,与在 settings.xml 中配置 mirror 中的 url 一样。同样,有两个 Id。
      3、需要注意,要与在 settings.xml 中用 server 配置的验证信息中的 Id 对应。因为发布就是上传文件,上传文件前需要安全认证。Maven 是通过 Id 将 server 中的验证信息发送给私服,私服认证通过了,才允许用户将本地构件上传。
      4、前面已经将配置信息都配置好了,右击“工程”,选择 Run As→Maven build… 命令,在弹出框的 Goal 后面输入 deploy,单击 Run 按钮,它们就会自动发布到私服。

    3、术语解析

    1)快照版本:临时版本,即使版本号不变,每次依赖也都会获取最新的包

    2)发布版本:发布后就固定了,版本号不变的情况下,不会获取最新的包

    3)版本号

    <主版本>.<次版本>.<增量版本>-<里程碑版本>

    1、主版本:表示项目重大架构的变更。比如 Struts1 和 Struts2,它们的架构体系都不同;JUnit4 和 JUnit3,一个全面支持注解,另一个就不支持。
    2、次版本:表示有较大的功能增加和变化,或者全面系统地修复漏洞。
    3、增量版本:表示有重大漏洞的修复。
    4、里程碑版本:表明一个版本的里程碑(版本内部)。这样的版本同下一个正式版本相比,相对来说不是很稳定,有待更多的测试。

    4、依赖的范围。参考  http://c.biancheng.net/view/5005.html

    compile:(默认)编译、测试、运行时有效
    test:只对测试时有效,编译、运行时无效。如junit
    provided:编译和测试时有效,运行时无效。如servlet-api
    runtime:测试和运行时有效,编译时无效。如 JDBC 驱动实现类
    system:同 provided 一样,但必须通过 systemPath 元素指定依赖文件的路径
    import:它的作用是将其他模块定义好的 dependencyManagement 导入当前 Maven 项目 pom 的 dependencyManagement 中

    5、依赖的传递性

    Maven 会解析项目中的每个直接依赖的 pom,将那些必要的间接依赖以传递依赖的形式引入项目中

    6、Maven多模块版本规范

    1、同一项目中所有模块版本保持一致
    2、子模块统一继承父模块的版本
    3、统一在顶层模块Pom的<dependencyManagement/>节中定义所有子模块的依赖版本号,子模块中添加依赖时不要添加版本号
    4、开发测试阶段使用SNAPSHOT
    5、生产发布使用RELEASE
    6、新版本迭代只修改顶层POM中的版本

    7、聚合与继承

    聚合与继承是两码事,但聚合通常伴随这继承。聚合是通过在父pom中编写<module>来实现,如:

     <modules>
        <module>my-project</module>
        <module>another-project</module>
      </modules>

    继承是在子pom中编写<parent>来实现的,如:

    <parent>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>my-parent</artifactId>
        <version>2.0</version>
        <relativePath>../my-parent</relativePath>
      </parent>

    其中relativePath元素不是必须的,指定后会优先从指定的位置查找父pom。

    继承是 Maven 中很强大的一种功能,继承可以使得子POM可以获得 parent 中的各项配置,可以对子pom进行统一的配置和依赖管理。父POM中的大多数元素都能被子POM继承。除了以下几个:artifactId、name、prerequisites。

    以下元素都可以被继承:

    groupId、version、description、url、inceptionYear、organization、licenses、developers、contributors、mailingLists、scm、issueManagement、ciManagement、properties、dependencyManagement、dependencies、repositories、pluginRepositories、build 、reporting、profiles

    8、多模块打包

  • 相关阅读:
    08月24日总结
    08月23日总结
    08月22日总结
    装饰器
    卢菲菲最强大脑记忆训练法全套教程 01
    LeetCode 704 二分查找
    LeetCode 1480 一维数组的动态和
    NIO 总结
    LeetCode 881 救生艇
    url的组成部分
  • 原文地址:https://www.cnblogs.com/aligege/p/14029172.html
Copyright © 2020-2023  润新知