IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

maven(POM、坐标、依赖)

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

1、POM

(1)概念:

项目对象模型(Project Object Model),每一个maven项目都要提供pom.xml

(2)POM的四个部分:

a、POM Relactionships项目间关系

坐标:groupid组、artifactID标识、version版本号(唯一标识项目在仓库中的位置)

  <groupId>pers.zhb</groupId>
  <artifactId>MyMaven</artifactId>
  <version>1.0-SNAPSHOT</version>

依赖:dependencies当前项目依赖哪些项目(通过依赖导入jar包)

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.struts</groupId>
      <artifactId>struts2-core</artifactId>
      <version>2.3.24</version>
    </dependency>
  </dependencies>

多模块和继承:modules多模块,parent继承(使用多模块和继承对整个项目进行拆分)

b、Project Information项目信息

名称:name

描述:description

c、Bulid Settings(项目构建时的相关配置)

属性信息:properties

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

打包方式:packaging选择打包方式,jar包、war包、pom

  <packaging>war</packaging>

构建相关配置:bulid

<build>
    <finalName>MyMaven</finalName>
    <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>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_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-war-plugin</artifactId>
          <version>3.2.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>

        <plugin>
          <groupId>org.apache.tomcat.maven</groupId>
          <artifactId>tomcat7-maven-plugin</artifactId>
          <version>2.2</version>
          <configuration>
            <port>8888</port>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
            <target>1.8</target>
            <source>1.8</source>
            <encoding>UTF-8</encoding>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

报告相关配置:reporting

d、构建环境相关配置(Bulid Environment)

profiles:使用(项目移植)

(3)有效POM、自定义POM和超级POM

自定义POM:Maven的所有操作都是基于插件的,自定义pom.xml没有定义插件,但是能运行test,所以项目运行时生效的不是自定义POM,而是有效POM

有效POM:在项目运行时生效的POM,有效POM=自定义POM+超级POM

超级POM:超级POM(如:编译、测试插件,虽然未定义但是可以使用)在Maven环境中,所有定义的pom.xml继承超级POM

2、坐标和依赖

在pom.xml里面可以通过标签配置项目的依赖(导入jar包),通过依赖目标项目的坐标,从仓库中找到项目(也就是说只要知道坐标就能获取到jar包)

(1)获取坐标的方式

a、网站搜索

http://search.maven.org/

http://mvnrepository.com/

b、使用Maven插件的索引功能

(2)依赖

当我们导入一个jar包,同时会自动导入依赖的jar包

84_1.png

(3)依赖的属性

坐标:导入一个jar包依赖,必须要素

      <groupId>javax.servlet</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.0</version>

依赖项目类型:type,默认值为jar

optional:标记依赖是否是可选的,如果A依赖B,B又依赖C,那么A依赖于C就可以设置为可选的

exclusions:排除传递依赖,解决间接依赖的jar包冲突的问题

scope:jar包的以来范围,决定jar包在什么情况下生效

 <scope>provided</scope>

(4)传递性依赖

a、传递性依赖

84_2.png

b、依赖调节

84_3.png

B可以直接依赖于G,亦可以先依赖于C,C再依赖于G,这样就会出现一个问题就是G的版本不一致(图中是一致的),如果导入不同的版本的jar包会出现问题

调解原则(只对传递依赖有效):

路径近者优先

第一声明者优先

文章永久链接:https://tech.souyunku.com/?p=23081


Warning: A non-numeric value encountered in /data/wangzhan/tech.souyunku.com.wp/wp-content/themes/dux/functions-theme.php on line 1154
赞(63) 打赏



未经允许不得转载:搜云库技术团队 » maven(POM、坐标、依赖)

IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码
IDEA2023.1.3破解,IDEA破解,IDEA 2023.1破解,最新IDEA激活码

评论 抢沙发

大前端WP主题 更专业 更方便

联系我们联系我们

觉得文章有用就打赏一下文章作者

微信扫一扫打赏

微信扫一扫打赏


Fatal error: Uncaught Exception: Cache directory not writable. Comet Cache needs this directory please: `/data/wangzhan/tech.souyunku.com.wp/wp-content/cache/comet-cache/cache/https/tech-souyunku-com/index.q`. Set permissions to `755` or higher; `777` might be needed in some cases. in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php:367 Stack trace: #0 [internal function]: WebSharks\CometCache\Classes\AdvancedCache->outputBufferCallbackHandler() #1 /data/wangzhan/tech.souyunku.com.wp/wp-includes/functions.php(5109): ob_end_flush() #2 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(303): wp_ob_end_flush_all() #3 /data/wangzhan/tech.souyunku.com.wp/wp-includes/class-wp-hook.php(327): WP_Hook->apply_filters() #4 /data/wangzhan/tech.souyunku.com.wp/wp-includes/plugin.php(470): WP_Hook->do_action() #5 /data/wangzhan/tech.souyunku.com.wp/wp-includes/load.php(1097): do_action() #6 [internal function]: shutdown_action_hook() #7 {main} thrown in /data/wangzhan/tech.souyunku.com.wp/wp-content/plugins/comet-cache/src/includes/traits/Ac/ObUtils.php on line 367