一:Maven知识整理

一:maven的好处
1.依赖管理:对jar包的统一管理 可以节省空间
2.项目一键构建:

    编码  编译  测试(junit)  运行  打包  部署
    一个 tomcat:run就能把项目运行起来
    Maven能干的事:
    编译  测试(junit)  运行  打包  部署

3.可以跨平台
4.应用于大型项目 可以提高开发效率

    互联网项目:按业务分
    传统项目:按层次分 pojo dao service web      

二:maven仓库
三种仓库

1、本地仓库 自己维护
    本地仓库的配置只需要修改settings.xml文件就可以
2、远程仓库(私服) 公司维护
3、中央仓库 maven团队维护

三:maven入门程序
1.Maven的目录结构

    pom.xml  -->  maven项目的核心文件
    src/main  -->  主目录
    src/main/java  -->  java代码
    src/main/resources  -->  配置文件/properties/xml
    src/test  -->  测试目录
    src/test/java  -->  纯java代码 junit测试
    src/test/resources  -->  junit测试所用到的配置文件,如果没有就从main里找   

2.maven常用命令

    mvn clean  -->  清理编译的文件
    mvn compile  -->  编译了主目录的文件
    mvn test  -->  编译并运行了test目录的代码
    Package  -->  打包
    mvn install  -->  把项目发布到本地仓库
    tomcat:run  一键启动

3.maven的生命周期

    Compile   test  package  install  deploy(发布到私服)
    三种生命周期:
    Clean生命周期
        Clean
    Default生命周期
        Compile   test  package  install  deploy
    Site生命周期
        Site
    不同的生命周期的命令可以同时执行:
        Mvn clean package

四:项目构建
1.maven在eclipse的配置

    选择maven软件的版本
    修改默认的本地仓库地址

2.项目构建
a.新建maven项目
b.跳过骨架,如果不跳过骨架选择创建出的项目目录是不全的
c.填写坐标信息

        groupId 公司或组织名称
        artifactId 项目或模块名称
        version 版本
        packaging 打包方式

d.添加web.xml文件

        ①.手动在webapp文件夹下创建一个WEB-INF文件夹,在里面放一个web.xml文件
        ②.查看项目信息
            project facets --》 dynamic web module
            去掉勾选 --》apply 再该版本 --》设置xml路径(src/main/webapp) --》apply

e.修改编译版本
在pom.xml中添加如下代码:

        <build>
            <!-- 配置了很多插件 -->
            <finalName>ssm</finalName>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                        <encoding>UTF-8</encoding>
                    </configuration>
                </plugin>
            </plugins>
        </build>

f.添加jar包(在pom.xml中)(依赖传递)
在本地重建索引,以索引的方式搜索:

            打开maven仓库的视图
            重建索引
            添加坐标 选择Dependencies标签 点击add
            手动输入要添加的坐标,选择版本和范围

从网络上搜索:mvnrepository.com
g.启动项目(maven build...)

        tomcat:run      

五:依赖范围
1.Compile struts2-core

    编译(compile)时需要 测试时需要,运行时需要,打包时需要

2.Provided jsp-api.jar servlet-api.jar -- *****

    编译(compile)时需要,测试(test)时也需要 ,运行时不需要,打包时不需要

3.Runtime 数据库驱动包

    编译时不需要,测试时需要,运行时需要,打包时需要

4.Test junit.jar

    编译时不需要,测试时需要,运行时不需要,打包也不需要

六:依赖版本冲突的解决
1、第一声明优先原则 优先采用前面的jar包,不采用后面的jar包
2、路径近者优先原则 自己添加jar包,优先采用直接定义的jar包,不采用依赖传递的jar包
3、排除原则

    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-spring-plugin</artifactId>
        <version>2.3.24</version>
        <exclusions>
          <exclusion>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
          </exclusion>
        </exclusions>
    </dependency>

4、版本锁定原则

    <properties>
        <spring.version>4.2.4.RELEASE</spring.version>
        <hibernate.version>5.0.7.Final</hibernate.version>
        <struts.version>2.3.24</struts.version>
    </properties>

发布项目:
运行myeclipse server application,部署项目到tomcat并运行
运行manven install,打包项目到本地仓库

maven启动自带的tomcat:(在pom.xml中添加插件)

Maven  add  plugin
tomcat6:
    tomcat:run
    tomcat:stop
tomcat7:
    tomcat7:run
    tomcat7:shutdown

原文地址:https://www.cnblogs.com/itzlg/p/10699329.html

时间: 2024-11-06 03:54:11

一:Maven知识整理的相关文章

Maven知识整理

一:maven介绍 Maven是一个采用纯Java编写的开 源项目管理工具.Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,Maven可以管理项目的整个声明周期,包括编 译,构建,测试,发布,报告等等.目前Apache下绝大多数项目都已经采用Maven进行管理.而Maven本身还支持多种插件,可以方便更灵活的控制 项目.  二:常用goals validate:验证工程是否正确

LWC知识整理(一)

目录 LWC知识整理(一) 工具 Salesforce CLI Visual Studio Code(VS Code) Developer Hub(Dev Hub) 开启Dev Hub 相关资料 茶余饭后的总结 LWC知识整理(一) 最近Salesforce那群闲不住的研究员又推出了一款针基于Web的开发组件-Lighting Web Component(简称LWC),这个组件的推出将对Salesforce开发进行一次比较大的更新换代(没错,你之前拼命学的Aura要逐渐淡出Salesforce的

Web网站服务及知识整理(二)

Web网站服务及知识整理(二)

Java基础知识整理(一)

概述 公司业务需要,产品既要有.NET又需要Java,没得选择,只能业余时间学习Java,整体觉得Java也.NET还是很相似的,只是语法有差别,差别也不是很大,这就将学习Java的基础知识整理下,以便于自己的学习.作为个.NET程序猿也可以学习Java ,毕竟技多不压身,学习多也要精通. 开发工具 eclipse ,开发java类似.NET 需要装JDK类似.NET Framework. Java开发工具eclipse设置 1.设置字体:window设置: 2.设置快捷键:window--ke

Linux动态库相关知识整理

动态库和静态库在C/C++开发中很常见,相比静态库直接被编译到可执行程序, 动态库运行时加载使得可执行程序的体积更小,更新动态库可以不用重新编译可执 行程序等诸多好处.作者是一个Linux后台开发,这些知识经常用到,所以 整理了一下这方面的知识.静态库相对简单,本文只关心Linux平台下的动态库. 创建动态库 这里我把一个短小却很有用的哈希函数编译成动态库做为示例,ELFhash用于对字符串做哈希,返回一个无符号整数. //elfhash.h #include <stdio.h> unsign

数据库知识整理

关系型数据库知识整理: 一,关系型数据库管理系统简介: 1.1使用数据库的原因: 降低存储数据的冗余度 提高数据的一致性 可以建立数据库所遵循的标准 储存数据可以共享 便于维护数据的完整性 能够实现数据的安全性 1.2基本概念: 对于任何数据库来说,表之间的关联关系存在三种基本的关系类型:一对一,一对多,多对多仅此三种. 目前流行的关系型数据库服务器管理系统有:微软-MS SQL Server.甲骨文-Oracle.IBM-DB2.开源的MySql和PostgreSQL等.(在面试中有被问到过)

DIV+CSS网页布局常用的一些基础知识整理

CSS命名规范一.文件命名规范 全局样式:global.css:框架布局:layout.css:字体样式:font.css:链接样式:link.css:打印样式:print.css: 二.常用类/ID命名规范页 眉:header内 容:content容 器:container页 脚:footer 版 权:copyright 导 航:menu主导航:mainMenu子导航:subMenu 标 志:logo标 语:banner标 题:title侧边栏:sidebar 图 标:Icon注 释:note

WIFI基本知识整理

WIFI基本知识整理 这里对wifi的802.11协议中比较常见的知识做一个基本的总结和整理,便于后续的学习.因为无线网络中涉及术语很多,并且许多协议都是用英文描述,所以有些地方翻译出来会有歧义,这种情况就直接英文来描述了. 主要内容: 一.基本概述 二.实践基础 三.一些原理 四.补充 五.其它 一.基本概述 ============================ 1.有线和无线网络 目前有线网络中最著名的是以太网(Ethenet),但是无线网络WLAN是一个很有前景的发展领域,虽然可能不会

Kali Linux渗透基础知识整理(二)漏洞扫描

Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网络上传输的数据量. TCP协议 TCP是因特网中的传输层协议,使用三次握手协议建立连接.当主动方发出SYN连接请求后,等待对方回答SYN+ACK ,并最终对对方的 SYN 执行 ACK 确认.这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议. 连接建立 TC