美文网首页
maven仓库之第一篇

maven仓库之第一篇

作者: 小小一技术驿站 | 来源:发表于2019-10-05 11:11 被阅读0次
    maven jar仓库 :存放maven项目使用的jar包.
            中央仓库,存放99%免费开源项目jar包,apache公司负责维护的,以T为单位的存储.
            
        例如 : struts2-core-2.3.24 版本
               maven项目通过坐标去仓库中,引入需要的jar包
               groupId 公司信息, org.apache.struts
               artifactId 项目信息, struts2-core
               version    版本信息, 2.3.24
        
        如果仓库中jar包很多,也可以对仓库创建索引提升查询速度.
        pom文件存放maven jar包的坐标.
        
        maven依赖管理 : 就是对jar包管理的过程.
        
        项目的一键管理:
            一键构建,实际是指,对于项目的某个流程动作,可以通过maven一个命令实现(编译---测试--- 运行 --打包---安装)
            什么是构建?
            指的是项目从编译 --- 测试 --- 运行  --打包 ----安装整个过程都交给maven进行管理,这个过程称为构建.
            
        maven_home 的环境变量配置
            %MAVEN_HOME%\bin;
            maven_home 是maven程序的安装路径.
            注意实现 : maven环境变量配置,必须要求,配置过JAVA_HOME变量名;
                       JAVA_HOME 必须是到jdk的安装目录可以看到bin;   
                       JAVA_HOME 路径,不要有(x86)
        配置环境变量是为了在命令行输入的命令,电脑会到path路径中寻找,你输入的命令,mvn.               
                       
        maven工程的目录结构 :
            src 源码文件夹
                main
                    java 开发的java代码;
                    resources 开发使用的配置文件;
                    webapp 相当于WebCotent 存放web工程的资源文件夹,css,jsp,image
                text
                    java 测试使用的java代码
                    resources
        pom.xml文件 是maven工程的核心配置文件,存放maven工程的坐标信息和maven项目使用的jar包坐标信息,其余的一些查询配置.
        只能满足maven工程目录结构的项目,才能使用maven命令运行.
            
        根据maven约定,一个比较标准的maven java web项目,  结合eclipse通常可以看到结构如下 :
            src/main/java           java主要代码存放目录
            src/main/resources      java配置文件存放目录
            src/test/java           java测试代码存放目录
            JRE System Library      jre中的一些jar包映射
            Maven Dependencies      根据pom.xml配置的依赖而导入的jar包映射
            src/main/webapp         web相关的文件,如html等
            src/test                这个目录暂时还没用过
            target                  maven项目输出目录,例如生成多的war包
            pom.xml                 maven项目最重要的一个文件
            
        Maven命令:
            compile :
                compile是maven工程的编译命令,作用是将src/main/java下的文件编译为class文件输出到target目录下.
            test :
                test是maven工程的测试命令,mvn test,会执行src/test/java 下的单元测试类.
            clean :
                clean是maven工程的清理命令,执行clean会删除target目录及内容.
            package :
                package是maven工程的打包命令,对于java工程执行package打成jar包,对于web工程打成war包.
            install :
                install 是maven工程的安装命令,执行install将maven打成jar包或者war包发布到本地仓库.
            deploye部署命令 : 
                是将打成的jar包或者war部署到公司私服服务器.
                某些工具类,处理字符串,格式化日期,解析xml文件.
            
            从运行结果中,可以看出:
                当后妈的命令执行时,前面的操作过程也都会自动执行,在同一生命周期内运行后面的命令,会自动执行前面的命令.
            
        三套生命周期 :
            maven 对项目构建过程分为三套相互独立的生命周期,请注意这里说的是"三套",而且"相互独立",这三套生命周期分别是:
                Clean Lifecycle 在进行真正的构建之前进行一些清理工作.
                Default Lifecycle 构建的核心部分,编译,测试,打包,安装,部署等.
                Site Lifecycle 生成项目报告,站点,发布站点.
            
        jar包冲突问题 :解决办法
            <!-- maven项目使用jar包的坐标节点 -->
             <dependencies>
                <dependency>
                    <groupId>javax.servlet</groupId>
                    <artifactId>servlet-api</artifactId>
                    <version>2.3</version>
                    <scope>provided</scope> <!-- 这个就解决jar包冲突问题 -->
                </dependency>
              </dependencies>
            
        Maven的目录结构 :
            bin : 放入了一些命令 : mvn tomcat:run.
            boot : 放了一些引导程序,类加载器.
            conf : 配置文件.
            lib : maven本身运行所需的jar包.
        
        pom.xml的配置文件 :
            <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
              <modelVersion>4.0.0</modelVersion>
              <groupId>com.baidu</groupId>
              <artifactId>struts_maven</artifactId>
              <version>0.0.1-SNAPSHOT</version>
              <packaging>war</packaging>
              <dependencies>
                <dependency>
                    <groupId>org.apache.struts</groupId>
                    <artifactId>struts2-core</artifactId>
                    <version>2.3.24</version>
                </dependency>
                <dependency>
                    <groupId>javax.servlet</groupId>
                    <artifactId>servlet-api</artifactId>
                    <version>2.3</version>
                    <scope>provided</scope>
                </dependency>
                <dependency>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <version>4.10</version>
                </dependency>
              </dependencies>
              
              <build>
                    <plugins>
                        <!-- 设置编译版本为1.7 -->
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-compiler-plugin</artifactId>
                            <configuration>
                                <source>1.7</source>
                                <target>1.7</target>
                                <encoding>UTF-8</encoding>
                            </configuration>
                        </plugin>
                    </plugins>
                </build>
              
              
              <properties>  
                <argLine>-Dfile.encoding=UTF-8</argLine>  
            </properties>  
              
            </project>
            
        依赖范围包括 :
            依赖范围 : 对于编译classpath有效  对于测试classpath有效  对于运行时classpath有效   例子------------------------------
            compile             Y                       Y                           Y                   spring-core
            test                -                       Y                           -                   Junit
            provided            Y                       Y                           -                   servlet-api
            runtime             -                       Y                           Y                   JDBC驱动
            system              Y                       Y                           -                   本地的,Maven仓库之外的类库.
    

    相关文章

      网友评论

          本文标题:maven仓库之第一篇

          本文链接:https://www.haomeiwen.com/subject/ttbepctx.html