项目构建之maven篇:4.坐标与依赖及spring依赖注入demo

源代码下载

坐标

  <groupId>com.demo.animal</groupId>
  <artifactId>animal-core</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

groupId:定义当前maven项目隶属的实际项目

artifactId:定义实际项目中的一个maven项目(模块),推荐实际项目项目做为artifactId的前缀,如:nexus-indexer

version:maven项目的当前版本号

packaging:maven项目的打包方式

依赖

pom.xml

<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.demo.animal</groupId>
	<artifactId>animal-core</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>jar</packaging>

	<name>animal-core</name>
	<url>http://maven.apache.org</url>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.10</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>3.0.7.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>3.0.7.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>3.0.7.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
			<version>3.0.7.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>com.kenai.nbpwr</groupId>
			<artifactId>javax-inject</artifactId>
			<version>1.0-201002241208</version>
		</dependency>
	</dependencies>
</project>

maven通过在dependency元素中设置坐标来使用依赖,参数如下:

groupId,artifactId,version:依赖的基本坐标,最重要

type:依赖类型,对应于项目坐标定义的packaging,大部份情况下,这个不用配置,默认为jar

scope:依赖范围

optional:标记依赖是否可选

exclusions:用来排除传递性依赖

依赖范围

依赖范围就是用来控制与这三种classpath的关系(编译classpath,测试classpath,运行classpath)

依赖范围的种类:

compile:编译领带范围,默认,对于编译,测试,运行三种classpath都有效,如:spring-core

test:测试依赖范围,只对测试classpath有效, 如:junit

provided:已提供依赖范围,对编译与测试classpath有效,如:servlet-api

runtime:运行时范围,对测试与运行有效,如:jdbc驱动

system:系统依赖范围,与provided一样

依赖范围与classpath的有关系

传递性依赖

运行命令可以查看依赖树

dependency:tree

查看结果:

依赖冲突解决办法

test-a:

源代码下载

test-b:

源代码下载

将test-a与test-b,安装到本地仓库,供test-c依赖

test.c

源代码下载

为什么会是依赖commons-logging-1.1.3.jar?

因为:当第二直接依赖与第三直接依赖都存在时,它是优先选择第二直接依赖(路径短)

继续

test.d

源代码下载

将test-d安装到本地仓库。供test-c依赖

test-c

源代码下载

如果需要使用test-b的commons-logging-1.1.3.jar

可以进行如下配置,在test-d中加入exclusions

<dependency>
			<groupId>com.demo.test</groupId>
			<artifactId>test-d</artifactId>
			<version>0.0.1-SNAPSHOT</version>
			<exclusions>
				<exclusion>
					<groupId>commons-logging</groupId>
					<artifactId>commons-logging</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

项目构建之maven篇:4.坐标与依赖及spring依赖注入demo

时间: 2024-12-17 14:58:29

项目构建之maven篇:4.坐标与依赖及spring依赖注入demo的相关文章

项目构建之maven篇:5.仓库及nexus创建私服-1

依赖坐标与本地仓库存储 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>3.0.7.RELEASE</version> </dependency> 本地仓库存储 仓库分类: 本地仓库: <localRepository>F:\maven\repos<

项目构建之maven篇:7.聚合与继承

聚合: 为方便项目构建,通常将聚合模块放在项目目录的最顶层,其他模块则作为聚合模块的子目录存在, 这样我们得到源码的时候,最快发现的是聚合模块的pom 运行命令 查看结果 源代码下载 继承 创建parent项目,用于被继承 parent/pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

项目构建之maven篇:6.生命周期与插件

项目生命周期 清理 初始化 编译 测试 打包 部署 三套生命周期 1.clean pre-clean 执行一些需要在clean之前完成的工作 clean 移除所有上一次构建生成的文件 post-clean 执行一些需要在clean之后立刻完成的工作 2.compile validate generate-sources process-sources generate-resources process-resources 复制并处理资源文件,至目标目录,准备打包. compile 编译项目的源

项目构建之maven篇:2.HelloWorld项目构建过程

文件结构说明: 项目构建生命周期: 清理 编译 测试 打包 运行 部署 清理与编译 hello\pom.xml POM:Project Object Model,项目对象模型 pom.xml与ant的build.xml类似 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocat

项目构建之maven篇:1.环境搭建

maven下载: 下载地址 设置环境变量 查看安装成功 mvn -version 设置本地仓库 存放从中央仓库或私服中下载依赖包,自定义的项目使用install命令,安装到本地仓库中,供其它项目依赖 apache-maven-3.0.5\conf\settings.xml 项目构建之maven篇:1.环境搭建,布布扣,bubuko.com

项目构建之maven篇:8.maven发布web工程及基于spring mvc,jetty实现的用户管理demo

web工程目录结构 pom/pom.xml <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&qu

项目构建之maven篇:3.m2eclipse使用

m2eclipse的安装 略 设置maven目录 设置用户个性化的maven配置 导入maven工程 源代码下载 运行命令 运行订制命令: mvn clean install或 mvn clean compile 可以自己订制 新建maven工程 新建一个Hello.java并运行 install命令 项目构建之maven篇:3.m2eclipse使用,布布扣,bubuko.com

项目构建之maven篇:5.仓库及nexus创建私服-2

下载安装 下载地址 修改默认端口: home\conf\nexus.properties # Sonatype Nexus # ============== # This is the most basic configuration of Nexus. # Jetty section application-port=9080 application-host=0.0.0.0 nexus-webapp=${bundleBasedir}/nexus nexus-webapp-context-pa

项目构建之maven篇:8.maven公布webproject及基于spring mvc,jetty实现的用户管理demo

webproject文件夹结构 pom/pom.xml <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.