美文网首页Maven
Maven(一)- Maven 目录结构及项目编译启动

Maven(一)- Maven 目录结构及项目编译启动

作者: yjtuuige | 来源:发表于2021-08-23 08:09 被阅读0次

Maven 简介:

  • Maven 翻译为"专家"、"内行",是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven 利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。
  • Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。
  • Maven 也可被用于构建和管理各种项目,例如 C#RubyScala 和其他语言编写的项目。Maven 曾是 Jakarta 项目的子项目,现为由 Apache 软件基金会主持的独立 Apache 项目。

Maven 功能:

  • 构建、文档生成、报告、依赖、SCMs、发布、分发、邮件列表

Maven 目录结构:

  • Maven 提倡使用一个共同的标准目录结构,Maven 使用约定优于配置的原则,大家尽可能的遵守这样的目录结构。如下所示:
目录 作用
${basedir} 存放 pom.xml 和所有子目录
${basedir}/src/main/java 项目的 java 源代码所在的目录
${basedir}/src/main/resources 项目的资源文件所在的目录,例如:propert文件
${basedir}/src/test/java 测试代码所在的目录,例如:JUnit 代码
${basedir}/src/test/resources 测试相关的资源文件所在的目录
${basedir}/src/main/webapp/WEB-INF web 应用文件目录,web 项目的信息,比如存放 web.xml、本地图片、jsp 视图页面
${basedir}/target 打包输出目录
${basedir}/target/classes 编译输出目录
${basedir}/target/test-classes 测试编译输出目录
Test.java Maven 只会自动运行符合该命名规则的测试类
~/.m2/repository Maven 默认的本地仓库目录位置

Maven POM 简介: POM 标签详解

  • POM ( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个 XML 文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖,等等。
  • 基本结构:
<?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>
    
    <!-- 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.companyname.project-group,
maven 会将该项目打成的jar包放本地路径:/com/companyname/project-group -->
    <groupId>com.companyname.project-group</groupId>
    <!-- 项目的唯一ID,一个 groupId 下面可能多个项目,就是靠 artifactId 来区分的 -->
    <artifactId>maven01</artifactId>
    <!-- 版本号 -->
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <!--项目引入插件所需要的额外依赖包 -->
    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.7.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>
  • 所有 POM 文件都需要 project 元素和三个必需字段:groupIdartifactIdversion
标签 描述
project 工程的根标签
groupId 这是工程组的标识。组织或者项目中通常是 唯一标识
artifactId 这是工程的标识。它通常是工程的名称。可以是多个
version 这是工程的版本号。
  • artifact 的仓库中,用 version 来区分不同的版本。例如:
    com.company.bank:consumer-banking:1.0
    com.company.bank:consumer-banking:1.1

创建项目及编译测试

  • Hello.java 文件目录
  • 测试代码
package com.xxx.demo;
public class Hello {
    public static void main(String[] args) {
        System.out.println("hello maven");
    }
}
  • 编译:mvn compile
    注:需要在项目的根目下执行
    D:\test\maven01>mvn compile
    
  • 启动测试:CMD 命令行执行 main 方法
    mvn exec:java -Dexec.mainClass="com.xxx.demo.Hello"
    D:\test\maven01>mvn exec:java -Dexec.mainClass="com.xxx.demo.Hello"
    
  • 显示成功界面
    hello maven
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS        # 编译成功
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  17.393 s
    [INFO] Finished at: 2021-08-21T15:23:20+08:00
    [INFO] ------------------------------------------------------------------------
    

如果编译不成功,可能存在如下问题:

  1. 未使用管理员权限执行命令
  2. JDK 环境配置问题,重装 JDK
  3. 代码编写时,类里面设置包名(如果编译时类没有加包名,执行时也不需加包名)

Maven 安装及环境配置

相关文章

网友评论

    本文标题:Maven(一)- Maven 目录结构及项目编译启动

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