maven
文章平均质量分 90
30年后世界会是怎样
这个作者很懒,什么都没留下…
展开
-
Maven处理依赖冲突
不知道你在使用Maven时是否遇到过诸如"NoSuchMethodError"或"ClassNotFoundException"之类的问题,甚至发生这些问题的Java类你没都没有听说过。要搞清楚这里面的缘由,我们得学习Maven对依赖冲突的处理机制。Maven采用“最近获胜策略(nearest wins strategy)”的方式处理依赖冲突,即如果一个项目最终依赖于相同artifact的多个版本,在依赖树中离项目最近的那个版本将被使用。让我们来看看一个实际的例子。我们有一个web应用resolve转载 2021-05-11 19:47:13 · 204 阅读 · 0 评论 -
Maven使用Profile
在开发项目时,设想有以下场景: 你的Maven项目存放在一个远程代码库中(比如github),该项目需要访问数据库,你有两台电脑,一台是Linux,一台是Mac OS X,你希望在两台电脑上都能做项目开发。但是,安装Linux的电脑上安装的是MySQL数据库,而Mac OS X的电脑安装的是PostgreSQL数据库。此时你需要找到一种简单的方法在两种数据库连接中进行切换,你会怎么做? 此外,你的项目需要部署。为了调试,在开发时我们在Java编译结果中加入了调试信息(Java默认)。而在部署转载 2021-05-11 19:45:26 · 615 阅读 · 0 评论 -
Maven使用自己的Repository(Nexus)
平时我们自己做的项目都是直接使用Maven提供的Central Repository,但是对于公司来说直接使用公共的Maven Central Repository就不见得是件好事了,比如我们需要考虑安全问题。此时你可以创建一个公司专属的Repository(Internal Repository),公司的所有项目都只和这个专属的Repository打交道,包括下载依赖,部署等。总的来说,专属Repository有以下好处: 代理外部Repository(比如Maven Central Repos转载 2021-05-11 19:41:52 · 988 阅读 · 0 评论 -
Maven配置Plugin到某个Phase(以Selenium集成测试为例)
持续交付要“自动化所有东西”,对于集成测试也是一样。集成测试和单元测试相比需要更多的环境准备工作,包括测试数据的准备和启动服务器等。在本篇中我们设想以下一种场景: 你开发了一个web应用,集成测试使用了Selenium,你希望通过一个Maven命令跑完所有的测试,包括集成测试。 Maven的plugin包含了一个或多个goal,每一个goal表示plugin的一个操作单位,在plugin开发中,一个goal通常对应于Java类的一个方法(Mojo的execute方法,请参考本系列之六)。一个goa转载 2021-05-11 19:38:09 · 342 阅读 · 0 评论 -
Maven多模块 vs 继承
通常来说,在Maven的多模块工程中,都存在一个pom类型的工程作为根模块,该工程只包含一个pom.xml文件,在该文件中以模块(module)的形式声明它所包含的子模块,即多模块工程。在子模块的pom.xml文件中,又以parent的形式声明其所属的父模块,即继承。然而,这两种声明并不必同时存在,我们将在下文中讲到这其中的区别。(一)创建Maven多模块工程多模块的好处是你只需在根模块中执行Maven命令,Maven会分别在各个子模块中执行该命令,执行顺序通过Maven的Reactor机制决定。先转载 2021-05-11 19:31:35 · 276 阅读 · 0 评论 -
Maven常用命令
Maven库:http://repo2.maven.org/maven2/Maven依赖查询:http://mvnrepository.com/一,Maven常用命令:1. 创建Maven的普通Java项目:mvn archetype:create -DgroupId=packageName -DartifactId=projectName2. 创建Maven的Web项目:mvn archetype:create -DgroupId=package转载 2021-05-11 19:19:20 · 189 阅读 · 0 评论 -
maven中scope属性
Dependency Scope在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:* compile,缺省值,适用于所有阶段,会随着项目一起发布。* provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。* runtim...转载 2020-05-08 14:17:24 · 183 阅读 · 0 评论 -
Maven pom.xml 详解
简介什么是 pom?POM 是 Project Object Model 的缩写,即项目对象模型。pom.xml 就是 maven 的配置文件,用以描述项目的各种信息。pom 配置一览<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSche...转载 2020-04-27 10:55:12 · 667 阅读 · 0 评论 -
maven的内置变量
Maven共有6类属性:内置属性(Maven预定义,用户可以直接使用)${basedir}表示项目根目录,即包含pom.xml文件的目录;${version}表示项目版本;${project.basedir}同${basedir};${project.baseUri}表示项目文件地址;${maven.build.timestamp}表示项目构件开始时间;${maven....转载 2020-04-08 17:57:05 · 377 阅读 · 0 评论 -
maven项目中使用log4j实现日志打印到控制台
在maven的pom.xml添加如下依赖: <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> <scope>...转载 2020-03-31 10:21:10 · 2282 阅读 · 0 评论 -
maven工程中读取resource目录下配置文件
在maven工程中,我们会将配置文件放到src/main/resources下面,例如我们需要确认resource 下的文件编译之后存放的位置。它编译的路径直接位于classes下面,这个路径其实就是classPath的路径,所以,在resources 根目录下的配置文件其实就是 classPath的路径。public static void main(String[] args) ...转载 2020-03-26 08:46:51 · 794 阅读 · 0 评论 -
Maven全局配置文件settings.xml详解
一、概要1、settings.xml的作用它是用来设置Maven参数的配置文件。并且,settings.xml是Maven的全局配置文件。settings.xml中包含类似本地仓库、远程仓库和联网使用的代理信息等配置。2、settings.xml文件位置settings.xml文件一般存在于Maven的安装目录的conf子目录下面,或者是用户目录的.m2子目录下面。3、配置的优...转载 2020-03-08 17:27:23 · 666 阅读 · 0 评论 -
Maven 生命周期
1. Maven 构建生命周期Maven 构建生命周期就是 Maven 将一个整体任务划分为一个个的阶段,类似于流程图,按顺序依次执行。也可以指定该任务执行到中间的某个阶段结束。Maven 的内部有三个构建生命周期,分别是 clean, default, site。其中 default 生命周期的核心阶段如下所示:default lifecycle2. 如何使用构建生命周期来完...转载 2020-03-08 17:17:40 · 157 阅读 · 0 评论 -
常用的 Maven 命令
maven 命令的格式为 mvn [plugin-name]:[goal-name],可以接受的参数如下。-D 指定参数,如 -Dmaven.test.skip=true 跳过单元测试;-P 指定 Profile 配置,可以用于区分环境;-e 显示maven运行出错的信息;-o 离线执行命令,即不去远程仓库更新包;-X 显示maven允许的debug信息;-U 强制去远程更...转载 2020-03-08 17:13:24 · 180 阅读 · 0 评论