首页 > 编程语言 >Java 从入门到放弃11 - 《Maven》

Java 从入门到放弃11 - 《Maven》

时间:2022-10-30 15:23:09浏览次数:47  
标签:11 logging java jar commons Maven 编译 Java

说点题外话,没想到突然又重拾更新,在这期间学习了java的许多知识,还补充了sql语句,数据库相关的内容,由于时间关系,中间部分的内容都没有做相应笔记和博客,因为sql的语句还有中间补充的那一段知识很大程度上也算是字典类的工具,等到时候用到了或者忘了之后再去仔细查询。

Maven

Maven 介绍

  • Maven的定义
    • Maven 是一个标准化的Java项目管理和构建工具
  • Maven的主要功能
    • 提供了标准化的项目结构
    • 提供了标准化的构建流程(如:编译,测试,打包,发布)
    • 提供了依赖管理机制

Maven 项目结构

a-maven-project
├── pom.xml
├── src
│   ├── main
│   │   ├── java
│   │   └── resources
│   └── test
│       ├── java
│       └── resources
└── target
  • a-maven-project 是项目名,pom.xml是项目描述文件,存放java源代码在src/main/java里面,存放资源文件在src/main/resources里面,测试源码/测试资源 存放在src/test里面,所有编译/打包文件都存放在target目录里面,这就是一个Maven项目的标准目录结构

pom.xml的结构

<project ...>
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.itranswarp.learnjava</groupId>
	<artifactId>hello</artifactId>
	<version>1.0</version>
	<packaging>jar</packaging>
	<properties>
        ...
	</properties>
	<dependencies>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>
	</dependencies>
</project>
  • 可以看到下面有许多小分支,其中最关键的是三个

    • 通常是公司或者组织的名称
    • 通常是项目的名称
    • 通常是更新迭代的版本
  • 一般安装依赖的时候我们也通过这三个变量去确定

<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.2</version>
</dependency>

依赖关系

  • Maven定义了几种依赖关系,分别是compiletestruntimeprovided

    • compile:编译时需要用到该jar包(默认)
      • 比如日志依赖 commons-logging
    • test:编译测试文件Test时需要用到该jar包
      • 比如 JUnit
    • runtime:编译时不需要,只有运行时才需要用到
      • 比如 MySQL 驱动
    • provided:编译时需要用到,但运行时由jdk或者某个服务器提供(类似接口)
      • 比如 Servlet API 运行时由 Servlet 服务器内置了相关的jar包,所以运行时并不需要
  • Maven会把compile类型的依赖直接放入classpath

标签:11,logging,java,jar,commons,Maven,编译,Java
From: https://www.cnblogs.com/ZzTzZ/p/16841356.html

相关文章

  • P1195 口袋的天空
    最小生成树的板子;使得连通块的数量减小到k即可!数据有点水(printf("NoAnswer");根本没用到QAQ)。#include<bits/stdc++.h>usingnamespacestd;constintN=1e3+7;con......
  • java多线程-线程安全集合
    CopyOnWriteArrayListCopyOnWrite思想就是将原来的数据copy一份出来修改,然后把修改后的数据替换原来的数据。在setArray之前并发读到的还是旧数据,弱一致性。publi......
  • java spring项目中使用设计模式和函数式编程的思想去除业务逻辑中的if else判断
    如果你开发项目时对项目之后的发展很清晰但仍陷入了为什么要用设计模式替换ifelse的疑问时就说明你项目的体量不需要用设计模式答案只在问题提出之后有意义策略和状......
  • [COMP2119] Searching - Building and Egg Problem
    DescriptionThereisabuildingwith$n$floorsandyouhave$m$eggs.Determinethelowestfloorthrownfromwhichaneggwillbreak.Ifaneggisbroken,it......
  • Java_JVM探究
    请你谈谈你对JVM的理解?java8虚拟机和之前的变化更新?什么是OOM,什么是栈溢出StackOverflowError?怎么分析?JVM的常用调优参数有哪些?内存快照如何抓取,怎么分析Dump文件?谈......
  • 【XSY3892】【hihocoder1147】时空阵(分层图dp)
    设\(dp(i,t,l)\)表示已经定好前\(i\)层,共有\(t\)个节点,其中第\(i\)层有\(l\)个节点。直接转移即可,注意一些细节:第\(1\)层只有\(1\)号节点。同层之间......
  • java.lang.NoClassDefFoundError
    问题描述:最近对JavaWeb进行了简单复习,在对照以往笔记写好了一个Servlet服务时发现无法启动该项目服务。针对java.lang.NoClassDefFoundError:javax/servlet/http/HttpSer......
  • 删掉Win11 22h2文件管理器中的 “主文件夹”
    Win1122h2升级后,文件管理器左侧多了一个"主文件夹"的链接,没啥用还占位置,之前一直较忙没有管它,今天研究了一下,可以通过注册表干掉它:WindowsRegistryEditorVersion5.......
  • windows 2003 oracle 10.2.0.4 升级迁移到linux 11.2.0.4
    文档课题:windows2003oracle10.2.0.4升级迁移到linux11.2.0.4源端:windows200332位+oracle10.2.0.432位+双实例目标端:centos7.964位+oracle11.2.0.464位应......
  • 11.校验token和解析token获取数据代码优化
    校验token和解析token获取数据代码优化解决方案基于ThreadLocal+拦截器的形式统一处理一、使用拦截器进行统一身份鉴权1.1定义拦截器packagecom.tanhua.server.i......