idea中使用maven构建maven工程

1,377 阅读3分钟

一、idea中关联maven

  1. 配置全局的setting

  1. 配置关联idea路径

  1. 如果自己以后创建工程 使用默认配置 . 如果以后引入别人的maven工程 会使用别人的maven配置(自己再次修改)

  2. 打开工程后 再去查看一次 maven配置 保证 每一个空间下都是最新的配置

二、使用Maven骨架创建Javase工程(不配置也可以)

三、非Maven骨架创建Java se工程(建议)

如果是Java se工程可以不选骨架 默认就是Java se工程

四、POM文件介绍

project Object Model: 项目对象模型 , 实际上就是maven管理项目的配置 , 需要描述的内容都写在此文件当中

<?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.itheima</groupId>
  <!--项目的模块名称-->
  <artifactId>day02_maven_02_se_1</artifactId>
  <!--版本-->
  <version>1.0-SNAPSHOT</version>

  <!--打包方式-->
  <!--
    packaging 打包方式
      之后我们项目开发完以后 需要进行打包
      se工程 打包出来的是jar包 , 更多的是作为工具jar被引入
      ee工程 打包出来的是war包 , 扔到tomcat里运行
  -->
  <packaging>war</packaging> 
    
  <!--就是一个别名-->
  <name>day02_maven_02_se_1</name>
  <!-- FIXME change it to the project's website -->
  <!--maven示例-->
  <url>http://www.example.com</url>

  <!--项目相关配置-->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <!--<dependencies> 依赖 (多个依赖)-->
  <dependencies>
    <!--某个依赖-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

  </dependencies>

  <!--构建-->
  <build>
    <!--插件的管理-->
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <!--多个插件-->
      <plugins>
        <!--一个一个的插件-->
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.7.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

五、idea中maven的生命周期和插件

按钮介绍

常用命令生命周期

生命周期: 从出生到死亡
项目的生命周期: 从项目开始创建到部署成功涉及到各个不同的节点

  • clean : 清除 字节码文件(删除缓存) 没用
  • compile: 编译 没用
  • test: 批量执行携带@Test注解的测试程序 没用
  • package:打包, 根据打包方式 jar/war生成不同的文件, jar包用来引入 , war用来发布
  • install:安装,将这些工程放入本地仓库,以后可以通过坐标访问 , war工程没意义
  • site(了解):站点 , maven会网站发布出去 并且生成一系列的文档信息
  • deploy(了解):远程发布传输,私服使用以后将我们的jar包发布到私服服务器上(maven高级说明)

六、依赖管理--依赖范围

scope 域
<scope> 表示当前jar的作用域
test: 只能在测试的时候生效
compile :任何时候有效(重点,可省略)  99%的jar都是compile
runtime : 运行时候有效测试有效  编译无效  Class.forName("com.mysql.jdbc.Driver"); 编译不报错 但运行报错
provided :编译测试有效 运行无效 (运行的时候不需要此jar)  servlet和jsp的jar包  最终我们的项目运行就在tomcat中 而tomcat已经携带了(servlet和jsp的jar包) 运行的时候不携带此jar包 由服务器提供此jar(防止jar包冲突)
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
      <scope>provided</scope>
    </dependency>

七、Maven项目pom.xml爆红解决思路

在实际开发中,我们拉去别人的代码后,本地idea中的pom文件未被识别,或者pom文件出现爆红现象,下面给出一些常见的解决思路

  • 检查项目是否被识别成为maven工程
  • 检查自己的网络连接,电脑是否处于断网状态,无法从中央仓库拉取jar包
  • 检查pom文件中的maven坐标是否完整,是否缺少版本号
  • 清除idea缓存,重启idea,重新加载maven工程,重新拉取jar包
  • 是否存在jar包冲突,排除依赖后重新拉取jar包