欢迎光临散文网 会员登陆 & 注册

黑马程序员Maven全套教程,maven项目管理从基础到高级,Java项目开发必

2023-08-17 16:14 作者:Wabi-Sabifag  | 我要投稿

一、Maven项目结构

pom.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>


  <groupId>com</groupId>

  <artifactId>projext-java</artifactId>

  <version>1.0</version>

  <packaging>jar</packaging>


  <dependencies>

    <dependency>

      <groupId>junit</groupId>

      <artifactId>junit</artifactId>

      <version>4.12</version>

      <optional>true</optional>

    </dependency>

  </dependencies>


</project>

----------------------------------------------------------------------

二、Maven项目构建

mvn compile #下载插件到本地Maven创库,编译代码(第一次编译会多一个文件夹

clean #清理

test #测试,日志报告 ./target/surefire-reports/

package #打包源文件为 .jar。执行以上命令。

install #安装到本地的Maven仓库,

三、Maven插件创建工程

创建工程(在空目录创建工程)

mvn archetype: generate

-DgroupId={project-packaging}

-Dartifact Id=(project-name}

-DarchetypeArtifactId=maven-archetype-quickstart

-DinteractiveMode=false

创建java工程(缺少resources文件夹)

mvn archetype:generate -DgroupId=com.itheima -DartifactId=java-project -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot -DinteractiveMode=false

创建web工程(缺少java文件夹)

mvn archetype:generate -DgroupId=com.itheima -DartifactId=web-project -

DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -

DinteractiveMode=false


四、依赖管理

1.依赖传递

<!--  依赖传递
    1.路径优先,就近原则
    2.声明优先,在相同层级被依赖时,先配置的生效
    3.特殊优先,同级配置相同资源的版本,后置覆盖优先(依赖重复但是版本不同时
     对子类不显示,不继承-->

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      
     <!-- 对子类不显示,不继承-->
      <optional>true</optional>

      <scope>test</scope>
    </dependency>
  </dependencies>

2.排除依赖

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
<!--      对子类不显示,不继承-->
      <optional>true</optional>
      <scope>test</scope>
<!--      主动排除依赖的资源-->
      <exclusions>
        <exclusion>
          <groupId>org.hamcrest</groupId>
          <artifactId>hamcrest-core</artifactId>
        </exclusion>
      </exclusions>
      
    </dependency>
  </dependencies>


3.依赖范围

<!--      依赖范围
        1.main文件夹范围
        2,test测试程序范围
        3.package指令范围

         依赖范围模式
        1.compile ( 1,2,3    例如:log4j
        2.test    ( 2        例如:junit
        3.provided( 1,2      例如:servlet-api 服务器内置,打包会冲突
        4.runtime ( 3        例如:jdbc
        -->
      <scope>test</scope>


4.依赖范围传递性

<!--      依赖范围的传递性
        1.compile,runtime可传递
        2.test,provided不可传递
-->










黑马程序员Maven全套教程,maven项目管理从基础到高级,Java项目开发必的评论 (共 条)

分享到微博请遵守国家法律