• Maven基础


    Maven

    maven是apach开源的一个项目管理工具,maven在美国口语中表示专家、内行的意思,因此它可以做很多事情。

    maven可以解决的问题:

    • 自动引用各种jar包,不用自己搜索下载导入
    • 编译Java文件(IDEA也可以即时编译)
    • 自动运行单元测试,不用自己做
    • 项目打包并部署项目

    maven的两个经典应用:

    • Maven的依赖管理:普通项目的jar直接放在项目里,项目之间不可重用;而maven工程的jar包存放在jar的仓库中,使用jar的坐标找到jar包(索引/指针,在pom.xml文件内)。
    • 项目的一键构建:一个命令完成项目编译、测试、报告、打包、部署。

    安装和配置

    安装

    1. 从官网下载
    2. 解压即可
    3. 配置环境变量
      • 系统变量设置MAVEN_HOME等于D:apache-maven-3.5.2-bin
      • 在系统变量Path中添加%MAVEN_HOME%in
    4. 注意:maven运行依赖jdk,并且有系统变量JAVA_HOME
    5. cmd窗口运行mvn -v检测

    仓库配置

    maven会自动将需要的jar包从中央仓库下载到c盘,这里叫本地仓库。

    公司一般建立一个自己的仓库,叫远程仓库(私服)。远程仓库可以从中央仓库下载,也可以自己上传。

    因此,maven工程先从本地找,再从远程找,再从中央找。

    设置本地仓库位置:找到conf目录下面的settings.xml文件,在注释下面添加

    • <localRepository>D:maven_repository</localRepository>

    IDEA集成

    配置

    在intelliJ IDEA中构建maven项目,首先安装好maven,然后:

    1. settings->Build Tools->maven设置
      • Maven home directory: 自己安装位置
      • User setting file: 配置文件位置(安装位置下面)
      • Local repository: 本地仓库位置
    2. settings->Build Tools->maven->runner设置本地仓库优先
      • VM Options: -DarchetypeCatalog=internal

    创建项目

    创建JavaWeb工程:具体参考https://blog.csdn.net/qq_41855420/article/details/104130925

    1. new project->maven->使用maven工程提供的模板

      • 选择Create from archetype
      • 选择org.apache.maven.archetypes:maven-archetype-webapp
    2. 设置项目名、maven安装位置、配置文件、本地仓库(检查是否和上面一致)。

    3. 在src/main下面创建两个文件夹javaresources

      • 右键java->mark directory as->sources root
      • 右键resources->mark directory as->resources root
      --.settings // 工具生成的文件
      --src  // 源代码
      	--main //
      		--java		 // 项目源码
      		--resources	 // 配置文件
      		--webapp	 // web页面
      	--test
      		--java		// 测试源码
      		--resources	// 测试的配置文件
      --target // 编译生成的文件
      pom.xml // maven配置文件
      
    4. 创建一个servlet,并集成HttpServlet(此时不能继承,因为新工程还没有jar包)

      • 在web.xml中配置servlet访问路径(先不用注解形式)

        <servlet>
            <servlet-name>helloServlet</servlet-name>
            <servlet-class>baidu.HelloServlet</servlet-class>
          </servlet>
          <servlet-mapping>
            <servlet-name>helloServlet</servlet-name>
            <url-pattern>/maven</url-pattern>
          </servlet-mapping>
        
    5. 打开pom.xml文件,添加项目所依赖的jar包(从网上搜索)

      <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
      </dependency>
      <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
      </dependency>
      
    6. 设置maven的插件(tomcat)

      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
            <port>8080</port>
            <uriEncoding>UTF-8</uriEncoding>
        </configuration>
      </plugin>
      
    7. 编写servlet,如req.getRequestDispatcher("/hello.jsp").forward(req, resp);

    8. IDEA右侧有一个maven面板,里面有许多命令,如果没有找到execute maven goal,并执行命令tomcan7:run

    9. 点击链接即可访问

    访问数据库

    如果想要访问mysql数据库,一般项目是先导入连接数据库的jar包,对于maven,就是写配置文件:

    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.6</version>
      <scope>runtime</scope>
    </dependency>
    

    常用命令

    执行maven命令,需要进入项目的根目录

    1. 清楚:mvn clean (新环境,都需要先清楚)
    2. 编译:mvn compile 生成targe文件夹,里面都是编译文件
    3. 测试:mvn test 执行src/test/java下的所有单元测试
    4. 打包:mvn package 将java工程打包成jar包,将web工程打包成war包(到target文件夹)
    5. 安装:mvn install 打包并发布到本地仓库(本地仓库中会有 自己定义的包的路径)
    6. 发布:mvn deploy 部署之前需要设置配置文件(先跳过这里)

    声明周期:(了解)

    • 清理生命周期:上面第一个命令,构建项目之前进行清理工作
    • 默认声明周期:上面2-6个命令,也是核心部分
    • site声明周期:生成项目报告、站点,发布站点。

    配置文件

    pom.xml是Maven项目的核心配置文件,主要内容有

    <project>
        <groupId>项目名称/域名 com.baidu</groupId>
        <artifactId>模块名称</artifactId>
        <version>项目版本号</version>
        <packaging >项目打包类型</packaging>
        <name>项目文档的名字</name>。
        <properties>可能是JDK版本</properties>
        <dependencies>项目依赖的包</dependencies>
    	<build><plugins>项目依赖的插件</plugins></build>
    </project>
    

    依赖的包(Maven叫坐标,个人理解成指针):

    <dependency>
      <groupId>来源</groupId>
      <artifactId>包名</artifactId>
      <version>版本</version>
      <scope>作用范围</scope>
    </dependency>
    

    作用范围有五个,默认compile

    作用范围		编译		测试		运行
    compile			y		 y		   y
    provided		y		 y		   -
    runtime			-		 -		   y
    test			-		 y		   -
    sytem			y		 y		   -
    

    项目依赖的插件,如tomcat

    <plugin>
      <groupId>org.apache.tomcat.maven</groupId>
      <artifactId>tomcat7-maven-plugin</artifactId>
      <version>2.2</version>
      <configuration>
        <port>8080</port>
        <uriEncoding>UTF-8</uriEncoding>
      </configuration>
    </plugin>
    
  • 相关阅读:
    防御式编程
    Linux磁盘与文件系统管理
    更加抽象
    高质量的子程序
    Linux文件与目录管理
    抽象
    可以工作的类
    Linux的文件权限与目录配置
    条件、循环和其他语句
    软件构建中的设计
  • 原文地址:https://www.cnblogs.com/mingriyingying/p/13515413.html
Copyright © 2020-2023  润新知