maven仓库之第一篇

Posted haizai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven仓库之第一篇相关的知识,希望对你有一定的参考价值。

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仓库之第一篇的主要内容,如果未能解决你的问题,请参考以下文章

Maven三种仓库的配置

Maven三种仓库的配置

Maven三种仓库的配置

测试网站搭建+渗透+审计之第一篇使用IDEA启动网站

maven仓库介绍

Maven中的仓库