一杯甜酒
金融科技领域技术 & 云基础设施 & 云原生微服务 & 云原生时代标准交付 & PAAS 技术研发 & Kubernetes & 项目与技术管理
展开
-
Maven学习总结(60)—— Maven 作用域 Scope 属性详解
test表示只能在src下的test文件夹下面才可以使用,你如果在a项目中引入了这个依赖,在b项目引入了a项目作为依赖,在b项目中这个注解不会生效,因为scope为test时无法传递依赖。这里之所以要说一说,是因为它也能控制依赖的作用域,只不过它的场景和上面的不一样。它用来声明你希望JDK和容器运行时来提供它,你自己不引入,仅仅使用这个依赖,在一些通用规范和插件扩展使用该选项比较普遍。这样做可以让扩展类库更加纯粹,仅仅提供扩展功能,而不干涉主类库的功能,彻底的插件化。...原创 2022-07-30 16:42:37 · 628 阅读 · 0 评论 -
Maven学习总结(59)—— Jar 包依赖冲突最全解决方案
在实际开发中,多模块项目常会使用 Maven 进行包管理。在 poml 文件中进行包依赖时,常存在引入一个 jar 包中默认依赖了其他的 jar 包的情况。这样很容易导致 jar 包冲突,从而产生一些诡异问题,如版本问题导致的类、方法找不到等。下面我们将聊聊具体关于依赖冲突产生的原因、排查方式以及解决的方案。当存在 groupId 和 artifactId 一致但是 version 不一致的 jar 包冲突时,模块会自动选择距离自己路径短的包。如:bepe-manager 到 common-lib (1.0原创 2022-07-11 14:12:09 · 1285 阅读 · 0 评论 -
Maven学习总结(58)—— 常用的 Maven 镜像地址和中央仓库地址汇总
常用的 Maven 镜像地址1、阿里云镜像地址<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf></mirror&...原创 2022-01-12 10:32:28 · 1100 阅读 · 0 评论 -
Maven学习总结(57)—— 如何提高 Maven 的构建速度?maven-mvnd 又是什么鬼?
前言Maven 经常被拿来和 Gradle 做对比,最大的劣势之一就是 Maven 构建慢,Gradle 比 Maven 构建速度快 2 到 10 倍,而如今 Maven 也可以更快了。Apache Maven 团队从 Gradle 和Takari(Maven 生命周期优化器Takari:http://takari.io/book/40-lifecycle.html)中获得灵感对 Maven 进行了强化,衍生出maven-mvnd项目。 Gradle 是一个基于 Apache Ant 和...原创 2021-12-29 13:11:34 · 1588 阅读 · 0 评论 -
Maven学习总结(56)—— Maven、Gradle 、 Ant 哪一个构建工具最适合你?
前言根据相关报告,大多数 Java 开发人员使用 Maven 作为他们的主要构建工具,在 67% 的受访者中。排名第二和第三的分别是 20% 的 Gradle 和 11% 的 Ant。这三个构建工具一直排在 Java 开发人员的前三个构建工具中。下面我们会详细对比 Maven、Gradle 和 Ant,分析这三种工具的优缺点,以了解开发人员为什么会大量使用这些工具。Java 构建工具概述MavenApache Maven 是 Java 开发环境中用于管理和构建项目以及维护依赖关系的强大软件项原创 2021-12-28 09:44:47 · 307 阅读 · 0 评论 -
Maven学习总结(55)——pom.xml 中 relativePath 属性的作用
搭建maven项目,子模块指定父模块试,经常会在parent下面出现relativePath类似下面:<parent> <groupId>net.itxw</groupId> <artifactId>test</artifactId> <version>0.0.1-SNAPSHOT</version> <relativePath/></parent>这个<parent>原创 2021-11-24 10:48:10 · 4333 阅读 · 2 评论 -
Maven学习总结(54)——使用 git-commit-id-plugin 插件来管理项目发版
插件 git-commit-id-plugin 可以很方便将打包时的git信息生成文件在包中,可以很方便的查看,官方文档地址:git-commit-id-plugin。<plugin> <groupId>pl.project13.maven</groupId> <artifactId>git-commit-id-plugin</artifactId> <version>2.1.5</version> <e原创 2021-11-17 09:56:33 · 1388 阅读 · 0 评论 -
Maven学习总结(53)——利用Maven插件构建镜像进行持续交付中的版本号管理
一、问题产生我们来思考下持续交付的原则。每次构建的结果可能是一个潜在的发行版本;消除手动瓶颈;尽可能自动化。这三点正是我们想要实现的,但是在实现之前,我们先来看下在典型的Maven发布流程和经典方式版本号管理上的具体问题。1)没有自动化通常来说,一次提交会触发一个快照构建,然后生成一个快照构件(“8.1.2-SNAPSHOP”)。当开发者感觉软件到达稳定状态后,他会触发一次专用发布构建...原创 2020-05-07 11:22:35 · 885 阅读 · 0 评论 -
Maven学习总结(52)——Maven 配置文件密码加密机制使用说明
前言Apache Maven项目提供了便捷的密码加密机制,该机制的最近更新时间为2018-03-06。该机制目前只支持在命令行下的操作,如生成密码的密文。此外,用户还需要在${user.home}/.m2目录下配置settings-security.xml文件,其中包含:用以加密其他密码的master password(此处也是密文)或指向另一个保密文件的完整路径。在该加密机制中有两个概念,一...原创 2020-04-06 11:39:28 · 2518 阅读 · 0 评论 -
Maven学习总结(51)——Maven 常用属性和常量说明
1.通过<properties>元素用户可以自定义一个或多个属性,然后在POM的其他地方使用${属性名称}的方式引用属性,这种做法的最大意义在于消除重复。2.Maven共有六类属性: 1)内置属性:${basedir}表示项目根目录,即pom.xml文件的目录。${version}表示项目版本。 2)POM属性:用户可以使...原创 2020-03-27 12:20:14 · 2378 阅读 · 0 评论 -
Maven学习总结(50)——Maven Dependency的 Scope 属性详解
Dependency Scope在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署。目前<scope>可以使用5个值:compile,缺省值,适用于所有阶段,会随着项目一起发布。 provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 runtime,只在运...原创 2020-03-11 09:41:49 · 1188 阅读 · 0 评论 -
Maven学习总结(33)——开发人员如何使用 Flyway 插件管理数据库版本
一、前言、想到要管理数据库的版本,是在实际产品中遇到问题后想到的一种解决方案,当时各个环境的数据库乱作一团,没有任何一个人(开发、测试、维护人员)能够讲清楚当前环境下的数据库是哪个版本,与哪个版本的应用相匹配,如何升级到与新版本的应用相匹配。想到管理数据库版本时,先是心底形成了一个初步的解决方案,大致是通过数据库中的某张表来记录数据库表结构的历次更新与对应版本,在每次数据库表结构调整时除了提供...原创 2020-03-04 14:37:08 · 4165 阅读 · 0 评论 -
Maven学习总结(49)——Maven Profile详解
前言Profile能让你为一个特殊的环境自定义一个特殊的构建;profile使得不同环境间构建的可移植性成为可能。Maven中的profile是一组可选的配置,可以用来设置或者覆盖配置默认值。有了profile,你就可以为不同的环境定制构建。profile可以在pom.xml中配置,并给定一个id。然后你就可以在运行Maven的时候使用的命令行标记告诉Maven运行特定profile中的目标。...原创 2018-11-04 22:32:16 · 3384 阅读 · 0 评论 -
Maven学习总结(48)——利用wagon-maven-plugin插件自动化部署Jar包/war包到Linux远程服务器
前言:Maven项目可使用mvn package指令打包,打包完成后包位于target目录下,要想在远程服务器上部署,首先要将包上传到服务器。程序开发完成后部署到线上Linux服务器,可能需要经历打包、将包文件传到服务器、SSH连上服务器、敲命令启动程序等一系列繁琐的步骤。实际上这些步骤都可以通过Maven的一个插件wagon-maven-plugin来自动完成。wagon-maven-plu...原创 2018-11-04 22:20:53 · 2682 阅读 · 0 评论 -
Maven学习总结(47)——Maven常用命令再总结
分享一个大神的人工智能教程。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到人工智能的队伍中来!点击浏览教程maven 命令的格式为 mvn [plugin-name]:[goal-name],可以接受的参数如下:-D 指定参数,如 -Dmaven.test.skip=true 跳过单元测试;-P 指定 Profile 配置,可以用于区分环境;-e 显示maven运行出错的信息;-...原创 2018-08-20 11:37:19 · 5953 阅读 · 0 评论 -
Maven学习总结(46)——Maven跳过单元测试的两种方法及其区别(-Dmaven.test.skip=true与-DskipTests)
Maven跳过单元测试有两种命令:-Dmaven.test.skip=true与-DskipTests。其中命令 -DskipTests表示不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下;而命令-Dmaven.test.skip=true表示不执行测试用例,也不编译测试用例类。在eclipse中构建安装项目时可以分别使用如下这两种命令:使用...原创 2018-08-08 11:29:42 · 10039 阅读 · 0 评论 -
Maven学习总结(45)——Maven仓库、将本地Jar包安装到仓库、打可执行的Jar总结
先说说Maven 仓库的分类:maven的仓库只有两大类:1.本地仓库 2.远程仓库,在远程仓库中又分成了3种:2.1 中央仓库 2.2 私服 2.3 其它公共库1.本地仓库,顾名思义,就是Maven在本地存储构件的地方。注:maven的本地仓库,在安装maven后并不会创建,它是在第一次执行maven命令的时候才被创建maven本地仓库的默认位置:无论是Windows还是Linux,在用户的目录原创 2018-03-02 10:58:49 · 2431 阅读 · 0 评论 -
Maven学习总结(44)——Maven构建时生命周期及其常用集成命令详解
集成命令:-U -X -B -eclean能够保证上一次构建的输出不会影响到本次构建。使用deploy而不是install: 构建的SNAPSHOT输出应当被自动部署到私有Maven仓库供他人使用,这一点在前面已经详细论述。使用-U参数: 该参数能强制让Maven检查所有SNAPSHOT依赖更新,确保集成基于最新的状态,如果没有该参数,Maven默认以天为单位检查更新,而持续集成的频率应该比这高很原创 2018-03-02 10:22:18 · 1528 阅读 · 0 评论 -
Maven学习总结(43)——利用javadoc插件生成项目的API文档
在进行Java学习的时候,相信大家都看过在线或者下载的java api文档,可能是html格式或者chm格式的,其实这些参考文档也是很容易生成的,这里介绍一个maven的插件来实现项目代码文档的生成。JDK 7 API1. 在项目的pom.xml文件中,添加如下代码:注意事项:(1)jdk8以后的版本添加了doclint,这个工具会规范HTML文档,对于不正确的嵌套,非法的html属性,未关闭的标原创 2018-02-23 10:17:33 · 5862 阅读 · 0 评论 -
Maven学习总结(42)——Maven多模块构建中常用的参数
一、多模块项目中需要使用不同的参数实现不同的构建目的,常用参数:-am --also-make:同时构建所列模块的依赖模块;-amd -also-make-dependents:同时构建依赖于所列模块的模块;-pl --projects :构建制定的模块,模块间用逗号分隔;-rf -resume-from :从指定的模块恢复反应堆。假设有聚合模块:jborg,包含如下几个子模块:jborg-cor原创 2017-11-26 13:24:14 · 1091 阅读 · 0 评论 -
Maven学习总结(41)——Maven依赖范围、传递、排除详解
一、添加依赖下面我添加了一个spring-web的依赖,maven就会去下载spring-web的jar包及它依赖的一些jar包。org.springframeworkspring-web4.2.5.RELEASEcompile二、依赖范围依赖配置中有一个scope之前没讲过,它就是依赖范围。什么是依赖范围就是指定你这个jar包在哪个阶段时才有效。c原创 2017-07-13 12:05:15 · 1450 阅读 · 0 评论 -
Maven学习总结(40)——Maven安装项目jar到本地和私服相关总结
1、Maven安装:install和deployinstall 安装到本地deploy 安装到私服(非本地)安装举例:#安装到本地,这种情况下不能让其他的项目引用mvn clean install#安装到指定的私服上mvn deploy2.私服配置举例setting.xml 文件配置私服的用户名和密码:server rele原创 2017-06-02 15:06:05 · 1151 阅读 · 0 评论 -
Maven学习总结(39)——Maven私服的搭建及使用deploy命令部署构建问题汇总
私用Maven服务器,一般是公司内部使用。下载地址是http://www.sonatype.org/nexus/go。默认端口8081。Nexus常用功能就是:指定私服的中央地址、将自己的Maven项目指定到私服地址、从私服下载中央库的项目索引、从私服仓库下载依赖组件、将第三方项目jar上传到私服供其他项目组使用。开启Nexus服务后访问url地址http://localhost:8081/nex原创 2017-05-18 15:21:15 · 1703 阅读 · 0 评论 -
Maven学习总结(38)——Maven下载失败文件夹批量删除问题的两种解决方法
用过Maven的应该都遇到过,当网速不好或者源有问题的时候,Maven的依赖包经常下载失败。 下载失败后在本地仓库对应的文件夹中有一个以.lastUpdated结尾的文件,如果不手动删除这个文件,就不能重新更新依赖,重新下载对应的jar包。一般情况下遇到的时候可能直接手动找到目录删除。当出现很多这样的情况时,一个个找起来也很麻烦。方法一:Linux:find ~/.m2原创 2017-05-09 15:19:57 · 2617 阅读 · 0 评论 -
Maven学习总结(37)——利用GitHub或阿里云OSS对象存储、又拍云、七牛云存储等搭建个人Maven仓库
无论是用Nexus还是HTTP服务器搭建Maven仓库,总归需要一台服务器,一台服务器需要花钱买和花时间维护,成本比较大。Nexus一般是公司用的比较多,个人不推荐使用。本文就是介绍一些适合个人搭建Maven仓库的方式,相对来说比Nexus更方便、费用更低(基本是免费的)。GitHub首先在GitHub上新建一个repository,例如命名为maven-repo,用来当做Maven仓库。原创 2017-05-05 10:50:10 · 3618 阅读 · 0 评论 -
Maven学习总结(36)——Apache Maven 3.5.0抢鲜看
Apache家族一直备受程序员的关注,继Apache Maven 3.3.9之后,直接跳到3.5.0,至于3.4.0,程序员怕是看不到了,不过也没什么关系,功能够强大就足以!来看看是哪些新功能足以让3.4.0系列直接消失。CloudBees的Elite开发人员和架构师,Apache基金会的成员,社区贡献者和PMC,在Maven邮件列表的一封信中宣布,Maven 3.4.0已经被废弃,下一个版本原创 2017-04-12 16:49:18 · 4759 阅读 · 1 评论 -
Maven学习总结(35)——Maven项目错误 JAX-RS (REST Web Services) 2.0 can not be installed问题
项目problem提示错误JAX-RS (REST Web Services) 2.0 can not be installed : One or more constraints have not been satisfiedJAX-RS (REST Web Services) 2.0 requires Java 1.7 or newer.将pom.xml编译插件的JDK1.6改为1原创 2017-03-16 10:22:45 · 4973 阅读 · 0 评论 -
Maven学习总结(34)——Maven settings.xml配置解读
第一步:看settings.xml的内容解释| #用户级别,面向单个用户配置,即每个用户都可以自定义settings.xml供己方使用 | This is the configuration file for Maven. It can be specified at two levels: | 1. User Level. This settings.xml file provi原创 2017-03-13 13:41:44 · 2445 阅读 · 0 评论 -
Maven学习总结(32)——Maven项目部署到Tomcat8中
1、环境准备Maven、Tomcat8、Eclipse2、maven中的镜像配置大家知道,mavne默认使用的是国外的镜像,但是速度很慢,这里建议大家使用阿里的中央仓库镜像。阿里出品,必出精品,做技术的都知道。3、maven中的server配置,这里的server就是我们tomcat中tomcat-user.xml文件中的用户名和密码。t原创 2016-12-11 11:46:42 · 3830 阅读 · 0 评论 -
Maven学习总结(31)——Maven坐标详解
Maven的一个核心的作用就是管理项目的依赖,引入我们所需的各种jar包等。为了能自动化的解析任何一个Java构件,Maven必须将这些Jar包或者其他资源进行唯一标识,这是管理项目的依赖的基础,也就是我们要说的坐标。包括我们自己开发的项目,也是要通过坐标进行唯一标识的,这样才能才其它项目中进行依赖引用。1.何为Maven坐标关于坐标(Coordinate),大家最熟悉的应该就是数原创 2016-12-11 11:41:47 · 1917 阅读 · 0 评论 -
Maven学习总结(30)——Maven项目通用三级版本号说明
项目版本号说明 当前版本号:1.0.0-SNAPSHOT 本项目采用通用的三级版本号,版本号格式是[主版本号].[副版本号].[修复版本号]-[稳定状态],如:1.0.0-SNAPSHOT。 1. [主版本号] 是从1开始的整数,表示重大的项目结构和概念调整,一般不会轻易修改该版本号,不同的主版本号不承诺能够兼容。 2. [副版本号]是从0开始的整数,表示项原创 2016-11-23 18:28:01 · 2593 阅读 · 0 评论 -
Maven学习总结(29)——Maven项目的pom.xml中log4j2配置
org.apache.logging.log4jlog4j-core2.7org.apache.logging.log4jlog4j-api2.7org.apache.logging.log4jlog4j-slf4j-impl2.7原创 2016-11-22 18:30:03 · 6026 阅读 · 0 评论 -
Maven学习总结(28)——Maven+Nexus+Myeclipse集成
Maven简介Maven 是一个基于项目对象模型(POM)的,提倡约定优于配置(ConventionOver Configuration)的,跨平台的项目管理和构建自动化工具。首先它是一个优秀的构建工具(构建自动化、消除构建重复、标准化构建过程),其次它还是一个依赖管理工具、项目信息管理工具(如:Mylyn)。Maven安装工具下载Maven3.0.原创 2016-11-03 09:33:06 · 1942 阅读 · 0 评论 -
Maven学习总结(27)——Maven自定义打包插件maven-assembly-plugin详解
Assembly插件会生成 “assemblies”, 此特性等同于的Maven 1 distribution plug-in.。该插件不仅支持创建二进制归档文件,也支持创建源码归档文件。这些assemblies定义在一个assembly描述符文件里。你可以选择自定义assembly描述符或者直接使用插件自带的三个预定义描述符中的任何一个.目前Assembly插件支持如下格式的归档文件:原创 2016-10-31 10:46:50 · 6714 阅读 · 0 评论 -
Maven学习总结(26)——maven update时,报:Preference node "org.eclipse.wst.validation"...
详细情况如下:An internal error occurred during: "Updating Maven Project".Preference node "org.eclipse.wst.validation" has been removed.解决方案:重启下eclipse,我的就是这样解决的!"org.eclipse.wst.validation" ha原创 2016-10-17 17:33:05 · 5311 阅读 · 0 评论 -
Maven学习总结(25)——Eclipse Maven Update 时JDK版本变更问题
1.新建一个Maven项目JDK版本和系统版本不对应,2.右键Maven项目->Maven->Update ProjectJDK版本改变了,3.操作系统的JDK重装了新的版本,这是引起前面两个现象的主要原因。修改方法(假如系统jdk版本是1.8):方法一:在pom.xml文件中指定jdk的版本:原创 2016-09-07 12:22:12 · 4864 阅读 · 0 评论 -
Maven学习总结(24)——Maven版本管理详解
现在所说的maven版本不同于SVN和git的版本控制哦!!!之前我们说过Maven的版本分为快照和稳定版本,快照版本使用在开发的过程中,方便于团队内部交流学习。而所说的稳定版本,理想状态下是项目到了某个比较稳定的状态,这个稳定包含了源代码和构建都要稳定。一、如何衡量项目的稳定状态呢?1. 所有的自动化测试应当全部通过2. 项目没有配置任何快照版本的依赖3. 项目没有配置任何快原创 2016-08-30 14:36:49 · 3412 阅读 · 0 评论 -
Maven学习总结(23)——Maven常用命令介绍
1.生成eclipse项目:mvn eclipse:eclipse2.清除eclipse的一些系统设置:mvn eclipse:clean3.mvn tomcat:run 在tomcat里面运行生成清除Eclipse项目结构:mvn eclipse:eclipsemvn eclipse:cleanmvn clean 清理(删除target原创 2016-08-10 13:21:06 · 2762 阅读 · 0 评论 -
Maven学习总结(22)——Maven常用插件介绍
我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的。进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如maven- compiler-plugin的compile目标用来编译位于src/main/Java/目录下的主源码,testCompi原创 2016-07-15 17:00:38 · 7071 阅读 · 0 评论 -
Maven学习总结(21)——Maven常用的几个核心概念
在使用Maven的过程中,经常会遇到几个核心的概念,准确的理解这些概念将会有莫大的帮助。1. POM(Project Object Model)项目对象模型POM 与 Java 代码实现了解耦,当需要升级版本时,只需要修改POM,而不需要更改Java代码,而在POM稳定后,日常的Java代码开发基本不涉及POM的修改。2. 坐标groupId , artifactI原创 2016-07-03 13:42:05 · 5093 阅读 · 0 评论