maven笔记 绝地灬酷狼 2022-03-28 05:59 197阅读 0赞 jdk:1.8 maven:3.3.9 eclipse:最新 WebModel:3.1 Jar:主要针对普通java项目 War:主要针对web项目 ### maven笔记 ### * * * Maven介绍 * 1. eclipse集成maven步骤 * * 1.1 安装 * 1.2 配置环境变量 * 1.3 修改默认jdk版本 * 1.4 修改默认仓库位置 * 1.5 Eclipse集成maven * 1.6 创建maven项目 * 2. 约定的目录结构 * 3. 仓库 * 4. POM * * a) 坐标(我这个jar包在仓库中的目录):gav * b) 安装jar包到本地仓库 * c) 安装项目到本地仓库 * d) 依赖版本统一管理 * e) 排除依赖:在依赖配置中排除指定的依赖 * f) 导入jar包 * 5. Jar包依赖 * 6. 项目的继承和聚合 * 7. 其他:新建工作集 ### Maven介绍 ### 自动化构建工具,只要你按照人家规定的项目目录创建项目,就可以通过简单是命令完 成构建的工作 用来创建和管理web项目(提供一个目录结构) * 项目构建:编译、清理(把上次编译的class文件删除)、测试、打包、部署发布… * 构建:就是创建,管理以及发布部署项目 我们学习用到maven功能: * 自动管理jar包 * 模块化开发 ### 1. eclipse集成maven步骤 ### #### 1.1 安装 #### #### 1.2 配置环境变量 #### 1. 看自己的jdk环境变量配置有没有JAVA\_HOME,如果没有按照规定配置 2. 配置maven环境变量,新建一个M2\_HOME的变量,值为maven安装目录配,在Path变量中添加 maven路径:`;%M2_HOME%\bin` #### 1.3 修改默认jdk版本 #### 修改安装目录下conf-settings.xml,找到profiles节点,在里面添加 <profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion> </properties> </profile> #### 1.4 修改默认仓库位置 #### 在本地创建这个文件夹 ,往里面添加jar包时,不能直接复制粘贴,需要通过命令生成 ,后面有说明 ![在这里插入图片描述][20190109183438285.png] #### 1.5 Eclipse集成maven #### a) 使用自己安装的maven ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70] b) 识别本地仓库位置 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 1] C) 修改jdk ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 2] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 3] \-Dmaven.multiModuleProjectDirectory=$M2\_HOME #### 1.6 创建maven项目 #### a) 创建maven普通java项目流程(打包方式为jar) ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 4] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 5] b) 创建mavenweb项目流程(打包方式为war) 创建好之后,让eclipse配置一个web.xml文件 先把Dynamic web module前面的勾去掉,apply保存,然后在点上Dynamic web module前面的勾,然后配置webapp ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 6] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 7] ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 8] ### 2. 约定的目录结构 ### 项目名(模块名) Src------>编写源代码的地方 Main------>用来放主程序 Java----->代码 Resources----->配置文件 Test------> Java----->测试代码 Resources----->测试用到的配置文件 Pom.xml------->依赖配置文件(管理项目管理jar包) webapp-------->相当于以前的webContent ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 9] ### 3. 仓库 ### a) 本地仓库 b) 私服仓库 c) 中央仓库 ### 4. POM ### #### a) 坐标(我这个jar包在仓库中的目录):gav #### groupid:公司或组织的域名倒序 artifactId:当前项目名称+当前项目的模块名称 version:当前模块的版本 #### b) 安装jar包到本地仓库 #### cmd 执行命令: Mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2 -Dpackaging=jar -Dfile=C:\app\THINK\product\11.2.0\dbhome_1\jdbc\lib\ojdbc6.jar 命名最好规范,-Dfile指定jar包在本地的路径 #### c) 安装项目到本地仓库 #### cmd进入项目的目录:mvn install或者eclipse操作 #### d) 依赖版本统一管理 #### <!-- 声明版本 --> <properties> <spring.version>4.1.6.RELEASE</spring.version> </properties> <!-- 使用版本 --> ${spring.version} #### e) 排除依赖:在依赖配置中排除指定的依赖 #### <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> < /exclusion> </exclusions> #### f) 导入jar包 #### jar包要从网上下载 打开 mvn repository 网站,搜索需要用的jar包 复制`<dependency>`标签内容,添加到pom.xml的`<dependencies>`标签中 <dependencies> <!-- servlet-api相关的依赖 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> </dependencies> ### 5. Jar包依赖 ### a) 依赖范围 i. Compile:主程序以及测试程序以及部署(默认),可传递 ii. Test:测试程序(junit4)不参与部署,不可传递 iii. Provided:主程序测试程序有效,不参与部署(servletAPI,jsp-API),不可传递 b) 依赖传递 原则:依赖路径最近原则,如果路径一致谁先配置依赖谁 ### 6. 项目的继承和聚合 ### * 继承 可以继承父工程的配置(非test作用域的依赖配置) 1. 创建父工程 (打包方式为pom) 在父工程的pom.xml文件中配置公共用到的jar包依赖 2. 在子工程中引入父工程 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 10] * 聚合:把多个模块聚合在一起 在父工程中配置聚合模块 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 11] * 模块之间的依赖传递 dao层依赖pojo层: <!-- 指定依赖 --> <dependencies> <dependency> <groupId>com.zl</groupId> <artifactId>pojo</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> ### 7. 其他:新建工作集 ### \---->select working set… ![在这里插入图片描述][2019011011453890.png] [20190109183438285.png]: /images/20220328/31cc2b7af7d74316a20a0aa6cd3587fb.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70]: /images/20220328/07350d827fe747848ef7b136cf0725c5.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 1]: /images/20220328/52f8b05b882f4b5297787007a3f2e3c3.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 2]: /images/20220328/77ae0858a9404749956f4887e1913126.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 3]: /images/20220328/aee1d75af463478d849a49956221fed6.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 4]: /images/20220328/048a878b0be94ef4a15002f6130de83d.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 5]: /images/20220328/bb8e67d5de0b41f9a2b2f7ff887e2a14.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 6]: /images/20220328/edae199bc8ee4a88adeabf264302957d.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 7]: /images/20220328/cbc1247513014f9880a3ff100ac185c7.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 8]: /images/20220328/fc12fdad48774b628d4eaaa9a897e7e9.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 9]: /images/20220328/faea034d78a24052b7fcd79c06951404.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 10]: /images/20220328/df50c57de7f5470595ab6bb113e0aafe.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDI1MTAyNA_size_16_color_FFFFFF_t_70 11]: /images/20220328/7294fe6fb078430d88d3aa93d9993f03.png [2019011011453890.png]: /images/20220328/a2f19abc12f64ed3902dcca7813dff0e.png
还没有评论,来说两句吧...