zoukankan      html  css  js  c++  java
  • Maven

    前言

    在传统的Java项目开发过程中,如果当前项目依赖很多第三方JAR包,我们就需要去网上载,容易遗漏、难以解决jar包之间的依赖关系也难以进行版本的管理。

    maven是什么?

     

    maven是1个java项目资源的管理工具。

    maven有2大功能:

    对内,当我们需要jar包的时候,maven可以自动去网络上的中央仓库下载指定版本的jar包资源、保存到本地maven仓库,供当前maven项目使用。

    对外,当别人需要当前maven项目时,maven可以把当前maven项目打包成jar包资源,存储到本地maven仓库,对外供其他maven项目使用。

    1.maven相关术语

    本地仓库:maven软件在本地电脑存储第三方资源的位置。

    云仓库:当maven在本地仓库中没有发现对应资源时,会自动去公网的云仓库中下载。

    资源坐标:URL地址是可以让浏览器定位1个唯一资源,资源坐标是maven仓库中资源唯一定位地址,资源坐标必须唯一。

    2.项目的概念

    当项目比较庞大、复杂的时候我们无法使用1个java文件去完成开发,于是我们把可以实现同一类功能的java文件存放到同1个文件夹下,因此形成了java项目的概念。

    为了便于不同程序员进行沟通,我们规范了java项目中目录结构体系,诞生了javase项目结构体系,为了提升开发效率,我们又引入了IDE工具(IDEA),可以直接帮我们快速创建1个java se项目,我们只需要在项目中写代码,不需要手工创建项目的目录结构。

    3.传统项目的类型

    java se项目:用于开发java项目的目录结构体系,该项目结构体系是给JDK工具来看的。

    java ee项目: 是一个web项目,该项目的运行不仅需要JDK支持,还需要得到服务器容器(Tomcat)的支持。

    4.maven项目

    maven项目是maven可以识别的项目,maven项目分为以下三类。

    POM:

    WAR类型:相当于javaEE项目

    JAR类型: 相当于javaSE项目

    5.maven项目、javase和javaee项目的关系

    maven是项目资源管理工具,只在开发阶段使用maven做项目资源管理,不参与项目的运行。

    虽然maven创建的项目结构和JavaSE和JavaEE项目结构完全不同,但是殊途同归,3中项目结构在编译之后是相同的。

    使用maven

    1.下载maven

    2.maven目录结构

    3.测试maven是否安装成功

    C:\Users\13220>mvn -v
    Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T19:57:37+08:00)
    Maven home: D:\maven\bin\..
    Java version: 1.8.0_40, vendor: Oracle Corporation
    Java home: D:\JDK8
    Default locale: zh_CN, platform encoding: GBK
    OS name: "windows 8.1", version: "6.3", arch: "amd64", family: "dos"

    4.配置maven本地仓库位置

    <localRepository>D:/maven_packages/m2/repository</localRepository>

    5.配置maven云仓库位置

     配置为国内阿里云maven仓库地址

     <mirrors>
        <mirror>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
      </mirrors>

    6.配置maven编译时使用的JDK版本

    在配置完maven的jdk版本之后,maven会自动去网络上下载相应的JDK版本。

    在项目开发阶段:maven项目编译时不会调用本地的JDK。

    在项目运行阶段:但是当maven项目编译完成后,运行阶段会使用本地的JDK。

     <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>
      </profiles>

    7.IDEA集成maven

     

    7.pom文件

    每一个maven项目都有1个pom文件,我们可以在这个pom文件中声明当前项目需要的第三方依赖和插件的资源坐标。

    <?xml version="1.0" encoding="UTF-8"?>
    <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.mingde</groupId>
        <artifactId>01_maven_jar</artifactId>
        <version>1.0</version>
        <!--自定义变量-->
        <properties>
            <junit.version>4.13.1</junit.version>
        </properties>
        <!--引入第三方资源列表-->
        <dependencies>
            <dependency>
                <groupId>com.mingde</groupId>
                <artifactId>02_maven_war</artifactId>
                <version>1.0</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    <!--引入第三方插件-->
        <build>
            <plugins>
                <plugin>
                    <!--插件的资源坐标-->
    
    
                </plugin>
            </plugins>
        </build>
    </project>

    maven项目打成jar包

    1.pom.xml文件配置打包插件

        <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <configuration>
                        <appendAssemblyId>false</appendAssemblyId>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                        <archive>
                            <manifest>
                                <!-- 此处指定main方法入口的class -->
                                <mainClass>com.mingde.JdbcDemo1</mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                    <executions>
                        <execution>
                            <id>make-assembly</id>
                            <phase>package</phase>
                            <goals>
                                <goal>assembly</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
    pom.xml

    2.指定jar包执行的入口

    参考

  • 相关阅读:
    JAVA中添加jar包
    shell 脚本读取数据库示例
    Div 布局之 DIV垂直居中显示
    awk 学习笔记
    提示ufmyhr日志已满,无法继续操作软件,如何解决
    12种貌似卫生的不卫生习惯
    远程通客户端反复提示要下载客户端软件
    固定资产反启用后再启用报00:00:00错误
    2008年5月14日
    睡前六个必要动作,一觉睡到大天亮
  • 原文地址:https://www.cnblogs.com/sss4/p/15757996.html
Copyright © 2011-2022 走看看