精华内容
下载资源
问答
  • Maven 入门

    2016-10-30 20:10:07
    Maven 入门

    1.Maven是做什么的

    Maven是一个项目管理和构建自动化的工具。但对于我们编码来说,我们更关心它的项目构建功能。

    1.1 Maven的项目结构

    src
     -main
      –bin 脚本库
      –java java源代码文件
      –resources 资源库,会自动复制到classes目录里
      –filters 资源过滤文件
      –assembly 组件的描述配置(如何打包)
      –config 配置文件
      –webapp web应用的目录。WEB-INF、css、js等
     -test
      –java 单元测试java源代码文件,项目的测试类,比如jUint代码
      –resources 测试需要用的资源库
      –filters 测试资源过滤库
     -site Site(一些文档)
    target
    LICENSE.txt Project’s license
    README.txt Project’s readme
    
    工程根目录下就只有src和target两个目录
    target是有存放项目构建后的文件和目录,jar包、war包、编译的class文件等。
    target里的所有内容都是maven构建的时候生成的

    1.2 pom.xml

    pom.xml文件是Maven的核心

    pom意思就是project object model。pom.xml包含了项目构建的信息,包括项目的信息、项目的依赖等。pom.xml文件是可以继承的,大型项目中,子模块的pom.xml一般都会继承于父模块的pom.xml

    刚构建的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/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>cn.luxh.app</groupId>
      <artifactId>my-app</artifactId>
      <packaging>jar</packaging>
      <version>1.0-SNAPSHOT</version>
      <name>my-app</name>
      <url>http://maven.apache.org</url>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </project>
    http://maven.aliyun.com/nexus/content/groups/public/
    http://central.maven.org/maven2/
    <project>      pom文件的顶级节点
    <modelVersion>   object model版本,对Maven2和Maven3来说,只能是4.0.0 
    <groupId>      项目创建组织的标识符,一般是域名的倒写
    <artifactId>    定义了项目在所属组织的标识符下的唯一标识,一个组织下可以有多个项目
    <packaging>      打包的方式,有jar、war、ear等
    <version>       当前项目的版本,SNAPSHOT,表示是快照版本,在开发中
    <name>        项目的名称
    <url>        项目的地址
    <dependencies>   构建项目依赖的jar
    <description>    项目的描述

    其中由groupId、artifactId和version唯一的确定了一个项目坐标

    2. 构建Maven工程

    2.1 简单的项目构建

    使用Maven命令行构建工程很重要,最简单的就是根据标准模板创建,有时还需根据不同的项目,添加不同的命令。

    关于maven项目的生成命令:
    create is deprecated in maven 3.0.5 and beyond,在maven3.0.5以上版本舍弃了create,使用generate生成项目

    标准创建模板

    mvn archetype:create 
    -DgroupId=com.codeline.commons \
    -DartifactId=codelineCommons

    第一次创建时,还需下载对应插件
    如第一次构建scala工程。

    mvn archetype:generate 
    -DarchetypeGroupId=org.scala-tools.archetypes \
    -DarchetypeArtifactId=scala-archetype-simple \
    -DremoteRepositories=http://scala-tools.org/repo-releases \
    -DgroupId=com.xxxx.bigdata.spark.app \
    -DartifactId=logs-analyzer \
    -Dversion=1.0

    2.2 构建多模块项目

    关于通过maven构建多模块项目参考此篇博客:
    http://www.cnblogs.com/xdp-gacl/p/4242221.html

    3. Maven资源仓库

    3.1 maven仓库收集

    <mirror>     
        <id>mirrors.ibiblio.org</id>     
        <name>mirrors.ibiblio.org</name>     
        <url>http://mirrors.ibiblio.org/maven2/</url>     
        <mirrorOf>central</mirrorOf>     
    </mirror> 
    
    <mirror> 
        <id>nexus-tmatesoft</id> 
        <mirrorOf>central</mirrorOf> 
        <name>Nexus tmatesoft</name> 
        <url>http://maven.tmatesoft.com/content/groups/public/</url> 
    </mirror>  
    
    <mirror> 
        <id>Central</id> 
        <url>http://repo1.maven.org/maven2</url> 
        <mirrorOf>central</mirrorOf> 
    </mirror> 
    
    <mirror>
        <id>internal</id> 
        <mirrorOf>*</mirrorOf> 
        <name>local.</name> 
        <url>http://uk.maven.org/maven2/</url> 
    </mirror>

    3. Maven 的生命周期

    在Maven2中有了明确的生命周期概念,而且都提供与之对应的命令,使得项目构建更加清晰明了。主要的生命周期阶段:

    • validate,验证工程是否正确,所有需要的资源是否可用。
    • compile,编译项目的源代码。
    • test-compile,编译项目测试代码。
    • test,使用已编译的测试代码,测试已编译的源代码。
    • package,已发布的格式,如jar,将已编译的源代码打包。
    • integration-test,在集成测试可以运行的环境中处理和发布包。
    • verify,运行任何检查,验证包是否有效且达到质量标准。
    • install,把包安装在本地的repository中,可以被其他工程作为依赖来使用
    • deploy,在整合或者发布环境下执行,将最终版本的包拷贝到远程的
    • repository,使得其他的开发者或者工程可以共享。
    • generate-sources,产生应用需要的任何额外的源代码,如xdoclet。

    如果要执行项目编译,那么直接输入:mvn compile即可,对于其他的阶段可以类推。阶段之间是存在依赖关系(dependency)的,如test依赖test-compile。在执行mvn test时,会先运行mvn test-compile,然后才是mvn test。

    参考博客:
    http://blog.csdn.net/edward0830ly/article/details/8748986

    系统总结Maven的博客

    7天学会Maven

    Maven学习总结

    展开全文
  • Maven入门

    2020-10-17 16:05:36
    Maven入门1. Maven介绍1.1 什么是Maven1.2 为什么要使用Maven2. Maven入门2.1 Maven环境的搭建2.2 Maven项目的创建 1. Maven介绍 1.1 什么是Maven Maven:一个用于自动化构建项目和管理项目依赖的工具。 来源于百度...

    github地址
    https://github.com/a18792721831/studyMaven.git
    文章列表:
    Maven最全知识
    [INFO] Generating project in Batch mode
    Maven项目的目录结构
    Maven仓库解析
    Maven pom.xml解析
    MVN命令与生命周期
    Maven私有仓库的搭建和使用
    Maven依赖

    1. Maven介绍

    1.1 什么是Maven

    Maven:一个用于自动化构建项目和管理项目依赖的工具。

    image-20201017125256152

    来源于百度百科

    自动化构建项目:按照企业中主流的项目模板,创建完善的项目结构。

    管理项目依赖:配置式添加和管理,自动下载和导入。

    正常情况下,我们创建一个项目,项目中用到的jar包都需要自己下载下来,然后手动导入到工程中,然后在工程中才能使用这些jar包,从而避免我们自己重复写轮子。

    spring–hello~!(如何搭建一个spring项目)

    springMVC-hello

    这些都需要手动导入需要jar包,但是这样就存在一些问题:

    1. 手动下载、管理、导入依赖
    2. 代码或者说项目与IDE与开发者的环境有相关性
    3. 操作繁琐,不易操作

    所以,一个自动化构建项目,和管理项目依赖的工具就非常的有必要性。

    1.2 为什么要使用Maven

    在1.1中,我们知道了,有一个自动构建,自动处理依赖的工具,是非常有用的。那么,自动化构建,自动处理依赖的工具,也有很多,不仅仅只有Maven,还有Gradle等等。可能还有一些其他的,只不过可能比较少接触到。

    目前为止,我目前接触到的自动化构建和管理依赖的工具,有Maven和Gradle。

    如果是简单的自动化构建项目,和管理依赖,这两个其实都非常的简单,没有什么难度。

    只是,在更高深的地方有一些差异:

    Maven Gradle
    xml Groovy
    插件多 可以自己写操作
    不灵活 进阶难度高

    因为Maven是使用xml的方式进行配置,而Gradle是使用Groovy语言进行配置。所以,Gradle的灵活性上可能不如Maven。

    但是,也基于Maven使用xml的方式进行配置,所以 ,学习的难度上要比Gradle更加简单,毕竟想要学习高阶的Gradle,那么Groovy语言是绕不过的门槛。

    所以,Gradle高阶的难度比较高。

    因为Maven使用xml进行配置,所以,如果想要定制化一些自己的操作,一般是创建自己的插件,然后在项目中使用,而Gradle是使用Groovy语言进行配置,而Groovy语言是一门编程语言,所以一些简单的,小的操作,自定义的操作,完全可以用几行Groovy代码就搞定了。前提是你要会写Groovy的代码。

    基于以上种种原因,目前Maven正在逐步走向淘汰,更多的使用Gradle,而Gradle的基本的思想和理念也和Maven相同,甚至Maven项目和Gradle项目可以很轻松的互转。

    2. Maven入门

    2.1 Maven环境的搭建

    第一步:java环境

    Maven主要是构建java为主的项目,所以,Maven环境是基于Java环境的,在搭建Maven环境前,首先需要保证自己有一个版本不是非常低的java环境。

    我的java环境是jdk8的java环境。保证就Java相关的环境是可用的。

    image-20201017131552672

    第二步:下载Maven

    Maven官网下载Maven.

    image-20201017131747515

    解压压缩包:

    image-20201017131920009

    解压后的目录如下

    image-20201017131956296

    第三步:配置环境变量

    Maven有三个大的版本:1,2,3

    在1中主要配置MAVVENN_HOME环境变量

    在2中主要配置M2_HOME环境变量

    在3中主要配置PATH环境变量

    当然,你要全部都配置上去,也是没有问题的。

    我们拷贝Maven解压文件夹中bin目录的地址,然后在系统的环境变量中增加这个路径(系统的环境变量如何配置请网上查找即可)。
    image-20201017132505710

    打开命令行,输入mvn命令有反应,那么Maven环境就算配置完成了。

    MAVEN_HOME环境变量的值是通过bin目录下mvn程序相对路劲进行查找的。

    所以MAVEN_HOME如果想要配置,配置到Maven解压目录即可。

    2.2 Maven项目的创建

    创建模块

    首先打开idea,然后配置idea中的maven。

    image-20201017150840705

    然后创建项目:

    image-20201017150934704

    接着配置一些版本信息(创建的项目的版本)

    image-20201017151049794

    接着展示最终的信息,这个信息主要是用于确认,是否和预期一致。

    image-20201017151117878

    点击finish后,就开始自动下载数据。需要访问外网(我自己挂着vpn)

    image-20201017151240006

    等待一会就完成了

    image-20201017151314419

    Maven已经自动创建相关的目录。

    image-20201017151339343

    但是这个自动创建的项目,目前已有的依赖非常有限,只有两个:

    image-20201017151520985

    其中jdk11是project的版本,新创建的moduel是jdk8.

    增加依赖

    我们需要的依赖肯定不只只是这两个,所以,我们就需要在网上寻找我们需要的依赖。

    打开Maven官方搜索网站搜索我们需要的依赖。

    搜索servlet-api

    image-20201017151930915

    找到最新版,然后拷贝Maven版本的依赖

    这个网站支持各种各样的自动化构建工具,比如Gradle,Groovy,Scala等等。

    image-20201017152014860

    然后复制到我们新创建的模块下的pom.xml中的dependencies

    image-20201017152309868

    拷贝完成后,需要我们指定依赖范围:

    image-20201017152648273

    报异常是因为本地没有这个版本,还未下载,所以接着点击按钮,刷新依赖

    image-20201017152352491

    刷新完成后,就不在报异常了

    image-20201017152420907

    接下来增加jsp的依赖

    image-20201017152550261

    刷新完成后所有的依赖就全部搞定了。

    配置插件

    我们虽然将依赖引入了,但是还缺少一些插件。

    同样的,在Maven官方插件搜索

    image-20201017153118448

    但是像其中一些常用的,默认就已经加入了

    image-20201017153200112

    我们主要是想增加tomcat的插件

    image-20201017153240677

    点击tomcat后,会展示支持的版本

    image-20201017153324155

    我们选择最新的版本

    点进入后会看到这个版本的tomcat插件使用的一些要求,以及相关的插件配置代码

    image-20201017153422950

    我们使用tomcat7就够了

    image-20201017153538601

    然后刷新

    image-20201017154356745

    运行项目

    第一种,使用命令运行

    创建Maven命令的方式运行:

    image-20201017154613009

    点击运行或者调试

    image-20201017154711382

    第一次运行会下载一些相关的数据,下载完成后,就会将容器启动成功

    接着访问url,验证是否启动成功

    image-20201017154858290

    浏览器访问成功

    image-20201017154933362

    这个Hello World就是项目中index.jsp中的内容

    image-20201017155007432

    第二次运行就不在重新下载数据了

    image-20201017155037277

    第二种,使用本地tomcat运行

    image-20201017155631967

    image-20201017155657771

    image-20201017155721334

    image-20201017155731171

    image-20201017155746867

    image-20201017155912484

    运行或者调试

    image-20201017155931972

    image-20201017160002003

    image-20201017160008552

    自动打开。

    展开全文
  • maven入门

    2021-02-10 08:17:33
    maven入门 使用Maven开发的优势 传统的项目中,由于含有较多的jar包,因此项目的大小非常庞大,而Maven则是考虑建立一个jar包的仓库,项目需要用到jar包的时候通过Maven程序去仓库里根据jar包的坐标去寻找,而这个...

    maven入门

    • 使用Maven开发的优势

      传统的项目中,由于含有较多的jar包,因此项目的大小非常庞大,而Maven则是考虑建立一个jar包的仓库,项目需要用到jar包的时候通过Maven程序去仓库里根据jar包的坐标去寻找,而这个jar包的仓库,就被称为Maven仓库,这样就能大大的减少项目的大小。一个传统的四十多Mb的项目使用Maven之后可能仅需要一百多kb。

      jar包坐标的构成:公司名称 + 项目名称 + 版本信息

    • Maven的两大核心

      依赖管理:也就是对jar包的统一管理
      项目构建:在项目编码完成后,原先通过IDE对项目进行编译、测试、打包、部署等一些列操作,都可以通过Maven的命令去完成
      Maven安装和相关运行配置
      首先去Apache官网http://maven.apache.org/download.cgi下载压缩包,并解压到无中文路径的磁盘位置

      Maven采用纯Java开发,因此需要配置环境变量

      名称:MAVEN_HOME 变量值:D:\Maven\apache-maven-3.5.2(配置到bin目录的上一级)

      将配置好的MAVEN_HOME配置到Path变量中去,在尾部添加 %MAVEN_HOME%\bin; 即可

      去cmd下像查看java一样查看Maven是否配置完成,命令:mvn -v

      出现上述信息,则Maven安装完成
      1.1.4 Maven的各种仓库了解
      当Maven项目需要jar包,会按照以下优先级去寻找

    • 本地Maven仓库:

      安装在程序员自己电脑上的jar包仓库

    • 私服:

      也就是安装在局域网中的私有服务器,用于存放jar包,前提是需要安装服务器
      中央仓库:位于互联网上,由Apache团队维护的大型jar包仓库,包括了基本所有的开源jar包,但是服务器在美国,访问缓慢,通常通过私服去下载,但也可以由电脑直接连接下载,只是速度感人!
      其实阿里等一些企业也提供了他们自己的互联网Maven仓库,如:https://maven.aliyun.com/mvn/view,可以通过镜像去配置

    • Maven本地仓库的配置

      找到其他人为我们总结好的本地jar包的压缩包,并解压到一个无中文的路径下

      配置本地jar仓库的路径,为了让Maven程序找到该仓库。需要去Maven的安装路径下找到conf/settings.xml

      在settings.xml文件中找到LocalRepository标签,标签体内配置你刚刚解压的路径即可(注意如果该语句在注释中记得拿出来)

    • Maven项目的标准目录结构

      src:用于存放项目源码
      main:用于存放运行主要代码
      java:用于存放主体程序源码
      resources:用于存放xml等配置文件的
      webapps:相当于webContent,用于存放WEB-INF、网页页面的素材(html、css、js等)
      test:用于存放单元测试代码
      java:用于存放测试代码,单元测试类
      resources:用于存放测试用的配置文件(一般少用)
      target:用于存放编译好的字节码文件
      pom.xml:Project Object Module,Maven核心配置文件
      从结构可以发现Maven对项目的代码进行了细分,但是 不管目录结构怎么改变,其输出的class文件的位置都是一样的,也就是对访问没有影响

    • Maven的常用命令

    • 补充

      以下所有命令都是在cmd窗口下将路径切到项目根目录执行,下方的命令会将上方命令除了clean全都执行一遍,这就涉及到了声明周期

    • 命令使用

      mvn clean:清理命令,将项目根目录下的target文件夹整个清理掉
      mvn compile:编译命令,在项目根目录下生成target文件夹,将项目中的.java文件编译成.class文件
      mvn test:单元测试命令,将项目根目录下的 src/test/java 下所有命名为XxxxTest.java的单元测试类都会被执行
      mvn package:打包命令,将项目打包到target文件夹中,如果是javaweb project就生成war包,如果是java project就生成jar包
      mvn install:安装命令,将写好的某个工具类打成包发布到Maven本地仓库中,解决jar包复用。一般打jar包,打war包价值不大

    • Maven项目的生命周期

      Maven存在三套声明周期,每一套生命周期相互独立,互不影响。在一套生命周期中,执行后边的命令,前边的命令会自动被执行

      CleanLifeCycle:清理生命周期,涉及指令:clean
      DefaultLifeCycle:默认生命周期,涉及指令:compile、test、package、install
      SiteLifeCycle:站点生命周期,涉及指令:site(了解即可)

    • Maven的概念模型

    • 依赖管理:

      通过给pom.xml中添加GroupId、ArtifactedId和Version的依赖模型,去给Maven坐标去本地仓库Local、私服b2b以及中央仓库central去寻找依赖jar包

       <dependencies>
         <dependency>
           <groupId>javax.servlet</groupId>
           <artifactId>servlet-api</artifactId>
           <version>2.5</version>
           <scope>provided</scope>
         </dependency>
       </dependencies>
      
    • 项目构建:

      通过简单的生命周期命令去调用底层的一些maven插件plug-in,从而完成构建的过程

    • 依赖范围:

      如果使用到tomcat自带jar包如servlet-api.jar或jsp-api.jar,需要将项目中依赖的作用范围设置为:provided

    展开全文
  • Maven入门指南 :Maven 快速入门及简单使用前言 Maven是一个Java语言编写的开源项目管理工具,是Apache软件基金会的顶级项目。主要用于项目构建,依赖管理,项目信息管理。 maven项目在编译、测试、打包里,会需要从...

    Maven入门指南 :Maven 快速入门及简单使用

    前言

          Maven是一个Java语言编写的开源项目管理工具,是Apache软件基金会的顶级项目。主要用于项目构建,依赖管理,项目信息管理。

          maven项目在编译、测试、打包里,会需要从maven的中央仓库(即:maven组织公布在互联网上的一个站点,里面已经收录了目前绝大多数主流的jar包)下载jar包等文件, 如果使用代理服务器上网,需要配置代理服务器。

    理解“仓库”

          首次运行完mvn -version后,会在用户目录下创建一个.m2的目录(比如:C:\Users\当前用户名\.m2\),这个目录是maven的“本地仓库”,仓库是maven中一个很重要的概念。

          试想一下,我们会在工作中同时创建很多项目,每个项目可能都会引用一些公用的jar包(.NET中是dll文件),一种作法是每个项目里,都复制一份这些依赖的jar包(或dll文件),这样显然不好,相同的文件在硬盘上保存了多份,太占用空间,而且这些依赖的jar包(或dll文件)的版本也不太好管理(比如某个公用的jar包,从1.0升级到2.0,如果所有引用这个jar包的项目都需要更新,必须一个个项目的修改)。

          maven的仓库则很好的解决了这些问题,它在每台机器上创建一个本机仓库,把本机上所有maven项目依赖的jar包统一管理起来,而且这些jar包用“坐标”来唯一标识(注:坐标是另一个重要的概念,后面还会讲到,这里只要简单理解成“唯一识别某个jar包文件名、版本号”的标识即可),这样所有maven项目就不需要再象以前那样把jar包复制到lib目录中,整个maven项目看起来十分清爽。

    如何将maven项目导入myeclipse中

    1、打开myeclipse工具,点击File,选择Import

     

    2、选择导入类型是已经存在的maven项目,然后next。

     

    3、点击Browse选择下载好的maven项目源码,点击finish

     

    4、然后会卡顿一段时间,因为maven项目不需要手动导入jar文件,maven项目会自动下载所需要的jar,所以多等待一段时间就行了。

    Maven项目的文件/目录结构相关约定

     

    src/main/java - 存放项目.java文件;

    src/main/resources - 存放项目资源文件;

    src/test/java - 存放测试类.java文件;

    src/test/resources - 存放测试资源文件;

    target - 项目输出目录;

    pom.xml - Maven核心文件(Project Object Model);

    使用MyEclipse创建Maven项目

          MyEclipse提供了Maven4MyEclipse插件,已经内置安装了Maven;但我们通常使用自己下载配置的Maven,在Installations选项中添加我们刚才下载配置的Maven。Eclipse可自行安装m2eclipse插件。

     

    1.新建一个 Maven Project:

     

    2.选择 workbench Location:

     

    3.选择 Maven Archetype(项目骨架),这里我们选择 maven-archetype-webapp:

     

    4.设置 Maven 相关参数,Group Id,Artifact Id,Version,Package。它们共同组成 Maven 的坐标:

     

    后续相关配置

    1.项目创建成功之后,我们看到 MyEclipse 默认只为我们创建了 src/main/resources,打开项目属性 - Java Build Path - Source 一栏,可看到 src/main/java和src/test/java 显示 missing:

     

    打开 Libraries,编辑 JRE 环境,选择自己安装的JDK:

     

    这时,src/main/java和src/test/java 已经出来了,再自行添加 src/test/resources 目录:

     

    2.接下来,设置 Project Facets。选择 Java 1.7 版本和 Dynamic Web Module 3.1 版本:

     

    3.设置项目输出目录如下:

     

    4.设置部署打包结构如下,删除测试相关目录:

     

    pom.xml文件,添加相关 jar包依赖

     1.打开 pom.xml文件,我们看到 Maven已经为我们添加了JUnit3.8.1 的依赖,这里我们改成 JUnit 4.11,同时添加 Servlet-api 的依赖包:

     

    2.保存之后,自动为我们添加了相关jar包。这时最开始缺少 servlet-api 相关类的错误提示已经没有了:

     

    构建及部署项目

    1.右键 pom.xml - Run As - Maven -install:

     

    2.来到target文件夹下,我们看到生成了项目的部署文件:

     

    3.部署项目到Tomcat应用服务器,访问项目:

     

     

     

          本文内容为作者本人整理互联网内容而得。详情请参照“参考文献”小节。

    参考文献

          http://www.cnblogs.com/luotaoyeah/archive/2014/06/02/3764533.html

    美文美图

     

     

    展开全文
  • MAVEN入门

    2020-08-08 16:40:34
    文章目录MAVEN概述MAVEN是什么?MAVEN能做什么?MAVEN约定约定优于配置(convention over configuration)MAVEN的配置项MAVEN的下载、安装与配置环境变量配置环境变量MAVEN新建项目 MAVEN概述 MAVEN是什么? Maven 是一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,837
精华内容 6,334
关键字:

maven入门