`
Clover_whd
  • 浏览: 14429 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Maven笔记——基础知识

 
阅读更多

1、maven项目目录结构:
   src
      -main
          -java
              -package
              -test
          -java
              -package
    resources

=======================================================================================
2、maven常用命令:
       mvn -v               查看maven版本
       mvn compile      编译
       mvn test            测试
       mvn package    打包
       mvn clean         删除target
       mvn install         安装jar包到本地仓库中

=======================================================================================

3、maven自动创建目录两种方式:
  1)  mvn archetype:generate  按照提示进行选择
  2)  mvn archetype:generate  -DgroupId=组织名,(一般公司网址的反写+项目名称)
                                                  -DartifactId=项目名-模块名
                                                  -Dversion=版本号
                                                  -Dpackage=代码所在的包名

=======================================================================================

4、maven的坐标和仓库:
 坐标
     构建
 仓库
     本地仓库和远程仓库(http://repo.maven.apache.org/maven2  全球中央仓库地址)
     镜像仓库:(指A和B提供一样的功能,maven中央仓库服务器位于国外,有时因为一些原因无法访问外

                          网,国内有镜像仓库)
     修改镜像仓库:打开maven —— config —— settings.xml 找到mirrors  line146

     配置查询:http://mvnrepository.com/
     

<mirror>
         <id>maven.net.cn</id>

         <!-- 指定镜像名字central为默认中央仓库名字,也可使用通配符*,匹配所有仓库-->
         <mirrorOf>central</mirrorOf>               
         <name>central mirror in china</name>
         <url>http://maven.net.cn/content/groups/public</url>
</mirror>

    更改仓库位置:maven从远程仓库下载构件默认存放当前用户中,例如:C:\Users\sino\.m2
    一般不将仓库放c盘,如遇到重装系统或其它问题,容易丢失。
    打开maven — config — settings.xml 找到 line53

    

<localRepository>/path/to/local/repo</localRepository> 

 

    修改路径.同时可复制settings.xml到新仓库所在目录下,这样以后更新maven版本,不必再次修改。

=======================================================================================

5、 maven的生命周期和插件:

      clean、compile、test、package、install

      完整的项目构建过程:清理、编译、测试、打包、集成测试、验证、部署。

     

      maven的生命周期:clean(清理项目)、default(构建项目)、site(生成项目站点)这三个周期相互独立。

      1)clean清理项目:

               pre-clean:执行清理前的工作

               clean:清理上一次构建生成的所有文件

               post-clean:执行清理后的文件

      2)default构建项目(最核心):

               compile、test、package、install

      3)site生成项目站点:

               pre-site:在生成项目站点前要完成的工作

               site:生成项目的站点文档

               post-site:在生成项目站点后要完成的工作

               site-deploy:发布生成的站点到服务器上

=======================================================================================

6、maven常用参数:

 

  <!--指定了当前pom的版本-->
  <modelVersion>4.0.0</modelVersion>

  <groupId>反写的公司网址+项目名</groupId>
  <artifactId>项目名+模块名</artifactId>
  <!--第一个0表示大版本号
       第二个0表示分支版本号
       第三个0表示小版本号
       0.0.1
      snapshot快照
      alpha内部测试
      beta公测
      Release稳定
      GA正式发布
   -->
  <version>0.0.1-SNAPSHOT</version>
  <!-- jar var zip pom默认是jar -->
  <packaging>jar</packaging>  
<!-- 项目描述名 -->
  <name>hi</name>
  <!-- 项目地址 -->
  <url>http://maven.apache.org</url>
  <!-- 项目描述 -->
  <description></description>
  <!-- 开发人员列表 -->
  <developers></developers>
  <!-- 许可证信息-->
  <licenses></licenses>
  <!-- 组织信息 -->
  <organization></organization>
  <!-- 依赖列表 -->
  <dependencies>
    <!-- 依赖项 -->
    <dependency>
        <!-- 指定位置 -->
        <groupId></groupId>
        <artifactId></artifactId>
        <version></version>
        <type></type>
        <!-- 依赖范围 -->
        <scope>test</scope>
        <!--  设置依赖是否可选,默认为false,两个值true,false-->
        <optional></optional>
        <!--  排除依赖传递列表  -->
        <exclusions>
          <exclusion></exclusion>
        </exclusions>
    </dependency>
  </dependencies>
  <!-- 依赖的管理 -->
  <dependencyManagement>
    <dependencies>
        <dependency></dependency>
    </dependencies>
  </dependencyManagement>
  <!--  对构建行为提供支持,经常使用标签 plugins-->
  <build>
    <!-- 插件列表 -->
    <plugins>
     <plugin>
      <groupId></groupId>
      <artifactId></artifactId>
      <version></version>
     </plugin>
    </plugins>
  </build>
  <!--  对父模块继承 -->
  <parent></parent>
  <!-- 定义多个模块,一起编译 -->
  <modules>
   <module></module>
  </modules>

=======================================================================================

7、依赖范围:

      三种classpath:编译、测试、运行    写在<scope></scope>里

      6种:compile、provided、runtime、test、system、import

               compile:默认的范围,编译测试运行都有效。

               provided:在编译和测试时有效。

               runtime:在测试和运行时有效。

               test:只在测试时有效。

               system:与本机系统相关联,可移植性差,在编译和测试时有效。

               import:导入的范围,它只使用在dependencyManagerment中,表示从其它的pom中导入dependecy的配置。

=======================================================================================

8、依赖传递:

例如:B依赖A,C依赖B,则C也依赖A

=======================================================================================

9、依赖冲突:

      原则:1) 短路优先 例:A->B->X(jar)    A->D->X(jar)    优先解析路径短的版本。

                 2) 先声明先优先:如果路径长度相同,则谁先声明,先解析谁。

=======================================================================================

10、聚合和继承:

聚合:

例如:hongxingA模块、hongxingB模块、hongxingC模块,将该三个放在一个maven中运行,新建maven模块ABC-Aggreation,在pom.xml中将三个模块聚合配置如下:

 <modules>
   <module>../hongxingA</module>
   <module>../hongxingB</module>
   <module>../hongxingC</module>
  </modules>

 

继承:采用<parent>标签,在pom.xml中配置父模块信息

例如:父类加入了junit 3.8.1依赖配置如下:

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <junit-version>3.8.1</junit-version>
</properties>
<dependencyManagement>
 <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${junit-version}</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

 

子类继承父类,即可将父类依赖的junit3.8.1继承配置如下:

 

 <parent>
  <groupId>com.imooc.hongxingParent</groupId>
  <artifactId>hongxingParent</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  </parent>
<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
</dependencies>

  

=======================================================================================

11、使用maven创建web项目,放到jetty或tomcat中

创建web项目:

1)右键,新建Project 选择:Maven Project ——Next

2)

 3)

 

4).转换web项目:选择项目,右键,属性,找到Project Facets 如图所示:

 
 

jetty:

 <plugins>
    <plugin>
       <!--jeetty插件-->
       <groupId>org.mortbay.jetty</groupId>
       <artifactId>jetty-maven-plugin</artifactId>
       <version>8.1.16.v20140903</version>
       <!--在打包时候运行jeetty插件-->
       <executions>
          <execution>
              <phase>package</phase>
              <goals><goal>run</goal></goals>
          </execution>
      </executions>
    </plugin>
</plugins>

 

tomcat:
 <plugins>
    <plugin>
          <!-- tomcat插件 -->
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat6-maven-plugin</artifactId>
          <version>2.2</version>
          <!-- 在打包时候运行tomacat插件 -->
          <executions>
               <execution>
                    <phase>package</phase>
                    <goals><goal>run</goal></goals>
               </execution>
          </executions>
    </plugin>
 </plugins>
 

 

  • 大小: 30.3 KB
  • 大小: 243.6 KB
  • 大小: 184.8 KB
  • 大小: 550.7 KB
分享到:
评论

相关推荐

    Maven 教程:基础篇-尚硅谷学习笔记 2022年

    本教程将深入介绍Maven的基础知识,帮助初学者快速掌握这一关键的开发工具。 ### 1. Maven项目对象模型(POM) POM是Maven的核心,它是一个XML文件,包含了关于项目的配置信息,如项目名称、版本、描述、开发者...

    SpringBoot基础入门笔记

    内容概要:包含SpringBoot——初始SpringBoot,SpringBoot的基本配置(多环境开发、yaml等)、整合第三方技术(JUnit,Mybatis,SSM)适合人群:有一定的maven,SpringMVC基础文件内容:压缩包分为两部分,笔记和...

    Maven.docx笔记

    二、Maven基础知识: 1. 项目对象模型(Project Object Model, POM):Maven项目的核心是POM,它是项目配置信息的XML文件,包括项目属性、依赖、构建目标等。 2. 依赖管理:Maven通过POM自动管理项目所需的库文件,...

    Maven学习资源打包汇总

    《Maven2_基础教程》主要面向初学者,讲解了Maven2的基础知识,如安装与设置、创建新项目、配置POM.xml、执行构建命令等。此外,教程中也提到了Maven仓库的概念,包括本地仓库、中央仓库和私有仓库的使用。 《maven...

    达内java笔记,精挑细选(达内助教整理)0积分

    首先,Java笔记涵盖了基础到高级的Java知识点。Java基础部分包括语法、数据类型、控制结构、类与对象、继承、多态、接口、异常处理等内容。深入理解这些概念是成为一名合格的Java开发者的基础。特别是面向对象的设计...

    spring學習筆記——Helloworld

    在本篇“Spring学习笔记——HelloWorld”中,我们将探讨Spring框架的基础知识,以及如何创建一个简单的Spring应用程序。Spring是一个广泛使用的Java企业级应用开发框架,它提供了丰富的功能,包括依赖注入、AOP...

    gradle笔记.docx

    《Gradle笔记——Java开发者的进阶指南》 Gradle,作为一款强大的构建工具,以其灵活性和高效性深受开发者喜爱,尤其在Java开发领域。它借鉴了Maven的优点,同时弥补了Maven的一些不足,使得项目构建过程更加简单且...

    JMeter压力测试软件+教程

    它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端 websocket使用场景分享 如弹幕,网页聊天系统,实时监控,股票行情推送等 学习课程需要什么基础: javaweb基础, html...

    Dom4j学习笔记

    **标题解析:** "Dom4j学习笔记" 这个标题明确指出了我们要探讨的主题——Dom4j。Dom4j是一个流行的Java库,用于处理XML文档。它提供了丰富的API,使得XML的读取、写入、操作变得简单易行。在学习笔记中,通常会涵盖...

    licanbin.zip

    《Java编程学习笔记——以“licanbin.zip”为例》 在编程的世界里,Java以其跨平台、面向对象和高效性的特点,成为了开发者们热衷的学习语言之一。本篇文章将结合“licanbin.zip”这个压缩包文件,深入探讨Java编程...

    JavaWeb每日总结思维导图

    本资源免费下载供大家阅读使用,全程知识点,使用思维导图的方式对知识进行梳理,包含各技术名词的概念及代码,内容清晰有序,适合初学者学习使用——每日一个 ,亦可以作为开发老鸟回顾知识的笔记。选择下载该内容...

    Simple_note_taking_apps:可以做简单的文字笔记

    综上所述,这个简单的笔记应用背后涉及了Java语言的基础知识,包括UI设计、数据持久化、事件驱动编程以及良好的软件工程实践。通过学习和理解这些概念,开发者可以构建出高效、稳定的笔记应用程序。

    java 解惑

    6. **Java 十大基础笔记整理(PDF).zip**:这是一份整理好的Java基础知识点的笔记,涵盖了类、对象、接口、继承、异常处理、输入输出、集合框架等关键概念,适合初学者和复习者参考。 通过这些文件,我们可以系统...

    Java毕业设计——基于ssm的兼职论坛设计与实现(源码+数据库).zip

    通过分析和理解项目的源码以及数据库设计,我们可以深入学习到以下几个关键知识点: 1. **SSM框架集成**: - **Spring**:核心是依赖注入(DI),用于管理对象的生命周期和装配,同时也提供AOP(面向切面编程)...

    freemarker使用笔记,从创建文件到写法指导

    2. 内容结构:模板文件由两部分组成——控制结构(指令)和输出表达式。指令以`&lt;#...&gt;`开头,输出表达式以`${...}`包裹。 **三、数据模型** 1. 创建数据模型:在Java代码中,你需要创建一个`Map, Object&gt;`对象,...

    simplenotebook

    《简单笔记本——深入探索Java编程实践》 "简单笔记本"(Simplenotebook)是一个基于Java编程语言的项目,其主要目标是提供一个简洁、易于使用的笔记本应用程序。这个项目虽然源于作者老师的教学实例,但开发者承诺...

    郝斌java视频课代码及课件

    郝斌的Java视频课程是一套深受自学者欢迎的编程教程,涵盖了从基础到进阶的大量知识点。通过他的课程,学员不仅可以学习到Java语言的基本语法和特性,还能深入理解面向对象编程思想,以及如何实际应用这些知识去解决...

    mySpring:跟着鲁班学院-周瑜老师视频做的简单Spring原始项目

    "简单Spring原始项目"可能指的是创建了一个基础的Spring项目,涵盖了Spring框架的基础知识,例如配置、Bean的管理以及简单的服务实现。 【标签】"系统开源"意味着这个项目是开源的,意味着源代码可供公众查看、学习...

    swing界面设计之JTree

    - Java基础知识。 - Spring框架的基础知识。 - 对Swing有一定的了解。 **Spring 和依赖注入概述** - **什么是Spring框架?** - Spring是一个开源的应用框架,用于简化Java企业级应用的开发。 - **什么是依赖注入?...

Global site tag (gtag.js) - Google Analytics