
Maven
文章平均质量分 66
易生一世
spring-petclinic-graphql开源项目的贡献者
展开
-
Google Maven Replacer Plugin插件详解
在Maven项目的构建过程中,对于Maven标准预定义变量,或者<properties>中定义的变量,都可以被实际的值替换。但是,如果要在构建的过程中替换文件中的任何指定字符串(这里成为tokens),就需要使用Google为Maven提供的replacer插件。Google的replacer插件原名为maven-replacer-plugin,2012年以后,为了遵循Mave...原创 2019-12-28 00:02:39 · 6201 阅读 · 0 评论 -
Apache Maven Resources Plugin插件详解
Apache Maven Resources Plugin是Apache Maven团队提供的官方核心插件,能够将Maven项目中的各种资源文件复制到指定的输出目录中。1. 在Maven项目中的资源可以分为两类main资源,指位于src/main/resources路径下的资源文件 test资源,指位于src/test/resources路径下的资源文件2.Apache Maven ...原创 2019-12-20 23:04:14 · 10870 阅读 · 2 评论 -
Maven的pom.xml文件结构之环境配置distributionManagement
Maven项目的POM中,环境配置<distributionManagement>负责管理构件的发布。当然,完整的配置,还需要在settings.xml中配置构件库所在的服务器server相关的参数。1.<distributionManagement>的基本配置 <distributionManagement> ... <d...原创 2016-08-31 23:15:32 · 60380 阅读 · 0 评论 -
JSON及其Java处理器Jackson、Gson和JSON.simple入门详解
1. JSON (JavaScript Object Notation)JSON是一种数据交换格式,基于E3 (1999版)的一个子集。常见的JSON的Java处理器:FasterXML Jackson Google Gson JSON-lib2. JacksonJackson是一个Java类库,用以处理JSON数据格式。Apache License 2.01) Jacks...原创 2017-08-10 16:58:28 · 1147 阅读 · 0 评论 -
Maven的pom.xml文件结构之环境配置profiles
在Maven项目中,可以通过pom.xml定义多个profile,也可以通过settings.xml文件定义多个profile。对于一个profile,如果同时在pom.xml和settings.xml中配置,则settings.xml中的配置优先。settings.xml中的profile只能配置如下元素:idactivationrepositoriespluginRepos原创 2016-09-01 09:05:47 · 24634 阅读 · 1 评论 -
Spring Boot的Maven插件Spring Boot Maven plugin详解
Spring Boot的Maven插件(Spring Boot Maven plugin)能够以Maven的方式为应用提供Spring Boot的支持,即为Spring Boot应用提供了执行Maven操作的可能。Spring Boot Maven plugin能够将Spring Boot应用打包为可执行的jar或war文件,然后以通常的方式运行Spring Boot应用。Spring Boo...原创 2017-07-18 15:18:20 · 147956 阅读 · 9 评论 -
Spring MVC-RAML Synchronizer Sample代码分析
Spring MVC-RAML Synchronizer Sample,顾名思义是Spring MVC-RAML Synchronizer的一个示例。但是Spring MVC-RAML Synchronizer包含3个组成部分,所以准确地说,Spring MVC-RAML Synchronizer Sample是springmvc-raml-plugin的示例。即,Spring MVC-RAML ...原创 2017-07-12 16:07:57 · 896 阅读 · 0 评论 -
Spring Boot执行repackage遇到Source must refer to an existing file异常详解
在Spring Boot应用构建完成后,修改了中间生成的代码,希望能够更新最终的jar包。执行mvn spring-boot:repackage,遇到异常如下:Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.5.4.RELEASE:repackage (default-cli) on pr原创 2017-07-20 14:40:30 · 16614 阅读 · 0 评论 -
Spring MVC - RAML Spec Synchroniser简介
1. Spring MVC - RAML Spec Synchroniser是一个工具,用以在Spring MVC应用和RAML文件定义之间进行同步。即Spring MVC应用的变化,可以通过该工具同步体现在RAML文件的定义中;反之亦然。该工具包含如下3个独立的组件:springmvc-raml-pluginspringmvc-raml-parser(忽略),解析Spring Annotatio...原创 2017-07-12 15:16:16 · 1224 阅读 · 0 评论 -
Maven的pom.xml文件结构之Build配置build
在Maven的pom.xml文件中,Build配置包含两个部分,一个是,另一个是,这里我们只介绍。1. 在Maven的pom.xml文件中,存在如下两种:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sc原创 2016-08-31 09:43:30 · 94433 阅读 · 21 评论 -
Apache Maven Site Plugin概述
Apache Maven Site Plugin是Maven项目提供的标准插件之一,用于为Maven项目生成站点(用以生成HTML页面的模块等文档),如果在pom.xml中配置了则其中也包括项目的报告。1. 官网:http://maven.apache.org/plugins/maven-site-plugin/2. 最新版本是2016-11-13发布的3.6。3. 提供的Mave...原创 2016-12-28 16:04:04 · 4040 阅读 · 0 评论 -
开发一个Maven插件的过程详解
很多工具软件都希望能够以Maven插件的形式提供,这里给出一个开发Maven插件的详细过程,供参考。1. 在Eclipse中创建新的Maven Project2. 可以看到,创建Maven Project的过程,默认就是执行maven-archetype-quickstart的过程3.在创建Maven Project的过程最后,为Maven插件设置Group Id,...原创 2017-08-21 15:34:16 · 6205 阅读 · 2 评论 -
Apache Maven Shade插件详解
Maven Shade Plugin将Maven应用打包为超级的uber-jar(也称为fat jar,或shaded jar)包含依赖库重命名依赖库的包名(以避免类库的冲突)有选择地打包最新版本3.1.0,2017.8.19发布goalsshade,默认加入到Maven的package阶段插件使用:编辑项目的pom.xml,配置插件参考原创 2017-10-23 23:29:43 · 10986 阅读 · 4 评论 -
Apache Maven Assembly插件详解
Maven Assembly PluginApache Maven项目提供的Maven插件Assembly能够将Maven应用的输出及其依赖库整合打包为一个压缩包,以便于应用的分发使用。Assembly插件的最新版本是2017.8.13发布的3.1.0。需要说明的是,Assembly插件只能原样打包,将各种依赖库打包在一起。而如果在打包过程中要解决冲突,或者在打包过程中进行某些转换,如剔除License重复等,则需要借助于一个更强大的Maven Shade插件。原创 2017-10-22 23:23:45 · 16678 阅读 · 0 评论 -
Apache Maven Release Plugin插件详解
Release插件是Apache Maven团队提供的官方插件,最终版本是2015-10-17发布的2.5.3,能够为项目代码库打tag,并将项目代码库中的代码发布到SCM的新版本。1. 使用Release插件的前提条件1) 明确使用的maven-release-plugin版本,当前为2.5.3<build> <plugins> <plug...原创 2018-09-21 17:26:37 · 14150 阅读 · 2 评论 -
Maven构建一个结合GraphQL服务的Spring Boot应用
本文使用Maven从零开始构建一个Spring Boot应用,以发布一个支持GraphQL的Web服务器。1. 执行mvn archetype:generate可以选择模板(但是已有的模板往往跟不上技术的进步),也可以只是生成一个基本的Maven项目。2. 编辑生成的pom.xml文件,使之首先支持Spring Boot特性 <parent> <groupI...原创 2018-04-23 00:02:52 · 4360 阅读 · 0 评论 -
Dockerfile Maven插件及扩展详解
作为一个Docker项目,都绕不过Dockerfile文件构建、打标签和发布等操作。如果能够将对Dockerfile文件的这些操作包含进Maven的生命周期管理中,将极大简化Docker项目的构建发布过程。Dockerfile Maven是Spotify公司提供的一款Maven插件(还包含一个Maven扩展),用以辅助Docker项目(借助于Maven管理)进行Dockerfile文件构建、标...原创 2018-04-04 16:09:19 · 14458 阅读 · 4 评论 -
Apache Maven Deploy Plugin插件详解
Deploy插件是Apache Maven团队提供的官方插件,最新版本2.8.2,发布于2014-08-27。该插件可以将构建出的构件直接部署到POM配置的远程库中。默认该插件已经配置在Maven的deploy阶段使用,而且该插件也没有配置参数,所以无需在项目的POM中配置该插件,直接执行如下命令即可。mvn deploy1. 对于一个Maven构件,其发布信息通常包括如下:构件元数据构件代码包本...原创 2018-03-13 15:25:18 · 20286 阅读 · 0 评论 -
Maven中的配置文件密码加密机制
在Maven的settings.xml中,往往要配置访问远程库所在的服务器的username/password。但是明文的密码总是显得那么扎眼,必欲除之而后快。Apache Maven项目提供了便捷的密码加密机制,该机制的最近更新时间为2018-03-06。该机制目前只支持在命令行下的操作,如生成密码的密文。此外,用户还需要在${user.home}/.m2目录下配置settings-securi...原创 2018-03-09 17:44:48 · 8572 阅读 · 0 评论 -
Maven的Non-parseable settings异常暨settings.xml文件的编辑问题
Maven下载到本地解压缩后,一直运行良好。使用UltraEdit配置settings.xml文件并直接保存后,再次执行mvn却报错如下:C:\Sam\works\myproject>mvn[ERROR] Error executing Maven.[ERROR] 1 problem was encountered while building the effective setting...原创 2018-03-09 17:02:05 · 47957 阅读 · 6 评论 -
Maven的settings.xml文件结构之mirrors
Maven的远程库提供大量构件,供Maven项目直接下载使用。对于任何一个Maven项目,如果没有特别声明,默认使用同一个Maven的central库,称为Super POM,该库的url如下:http://repo.maven.apache.org/maven2/但是该远程库为所以项目共用,而且需要连接公共互联网访问,由于访问互联网的限制或安全控制的需要,在企业内部往往需要建立对远程库...原创 2016-08-24 10:12:11 · 12803 阅读 · 0 评论 -
Maven的pom.xml文件结构之基本配置parent和继承结构
1.Maven项目的继承Maven项目之间不仅存在多模块的聚合关系,而且Maven项目之间还可以存在相互继承的关系。Maven项目之间的继承关系通过<parent>表示,在子Maven项目的POM中配置示例如下: <parent> <groupId>com.mycompany.cat</groupId> <art...原创 2016-08-29 23:18:50 · 65457 阅读 · 3 评论 -
Apache Maven Site Plugin详解
本文介绍Apache Maven Site Plugin的具体使用方法。1.在Maven项目的pom.xml文件中的配置如下: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <...原创 2016-12-29 23:43:23 · 11122 阅读 · 0 评论 -
Apache Maven入门指南
Maven是一款项目管理的工具,基于POM (project object model)提供了编译、构建、打包和发布等管理操作。Maven的版本Maven 1.x和Maven 2.x已经过时了,因此至少要使用Maven 3.x的版本。当前的最新版本是Maven 3.3.9,但是需要JDK 1.7.Maven的安装首先安装JDK安装完毕后,可以设置JAVA_H原创 2016-04-24 23:59:16 · 797 阅读 · 0 评论 -
Maven的settings.xml文件结构之proxies
Maven中代理服务器的设置,用以通过代理服务器访问远程库。在settings.xml文件中的配置示例如下: myproxy true http proxy.somewhere.com 8080 proxyuser somepassword *.google.com|ibiblio原创 2016-08-24 12:07:46 · 3522 阅读 · 0 评论 -
Maven的settings.xml文件结构之servers
Maven中的构件(artifact)都是以库(repositories)的方式组织的。事实上,库就是符合Maven的库目录结构的构件的集合。而库又分为本地库和远程库。通常,本地库位于$user_host/.m2/repository目录下。而远程库则往往根据需要有多个,默认的是Maven项目本身提供的Maven库,其对应的服务器url如下:https://repo.maven原创 2016-08-23 09:13:11 · 16565 阅读 · 4 评论 -
Maven的settings.xml文件结构详解
安装Maven后(可以只是解压缩下载的Maven发布包),在Maven安装目录下的conf/目录下有一个settings.xml文件。该文件事实上只是一个空模板,其中没有任何有效的设置。打开该文件,可以看到其引用的XML Schema如下:http://maven.apache.org/xsd/settings-1.1.0.xsd该文件的结构如下:原创 2016-08-22 12:20:46 · 2871 阅读 · 0 评论 -
Maven中的库(repository)详解
如果一个项目需要依赖一个构件,Maven编译的时候会首先从本地库查找该构件。如果本地库中没有,再根据配置的远程库信息,逐个去远程库中查找该构件。如果在远程库中找到则下载到本地库,如果在所有的远程库中都没有则会抛出编译异常。定义一个远程库往往需要提供如下信息:idnameurllayout库中的构件可以分为两类,一类是被其他构件依赖的构件(dependencies原创 2016-08-24 00:19:44 · 89488 阅读 · 6 评论 -
Maven的pom.xml文件结构之Build配置reporting
在Maven的pom.xml文件中,Build相关配置包含两个部分,一个是,另一个是,前文中我们已经介绍了,这里我们介绍reporting>。reporting>中的配置作用于Maven的site阶段,用于生成报表。reporting>中也可以配置插件,并通过一个的为该插件配置参数。注意,对于同时出现在build>和reporting>中的插件,reporting>中对该插件的配置也能够在构建原创 2016-08-31 22:33:38 · 21339 阅读 · 0 评论 -
Maven的settings.xml文件介绍
Maven作为一款项目管理和理解的工具,已经成为项目构建的基础设施之一。那么对Maven本身的行为如何进行定制呢,这就要用到其提供的settings.xml文件。1. Maven可能存在如下两个settings.xml文件:%MAVEN_HOME%\conf\settings.xml 即Maven的安装目录下%user_home%原创 2016-08-21 23:36:46 · 1282 阅读 · 0 评论 -
Maven的pom.xml文件结构之基本配置properties
Maven的pom.xml文件结构之基本配置properties原创 2016-08-30 09:22:33 · 15167 阅读 · 0 评论 -
Maven的pom.xml文件结构之基本配置dependencies和dependencyManagement
1.Maven项目的dependenciesMaven项目的构建往往要依赖于第三方的类库。通过可以给出Maven项目所依赖的第三方类库,示例如下: junit junit 4.0 jar test true ... 说明:对于一个依赖,首先要给出被依赖的Maven构件(被原创 2016-08-30 00:09:42 · 19181 阅读 · 0 评论 -
Maven的pom.xml文件结构之基本配置packaging和多模块聚合结构
1. packagingpackaging给出了项目的打包类型,即作为项目的发布形式,其可能的类型。在Maven 3中,其可用的打包类型如下:jar,默认类型warejbearrarparpommaven-plugin2.multi-modulesMaven 3支持Maven项目的多模块(multi-modules)结构。这样的Maven项目也被称为聚合项目,通常由一个原创 2016-08-29 22:43:05 · 41830 阅读 · 0 评论 -
Maven的settings.xml文件结构之profiles
Maven项目中,可以在pom.xml定义多个profile,提供在不同的环境下的特殊配置。在settings.xml文件中也可以定义多个profile,但是由于settings.xml文件的设置适用于所有的项目,所以在settings.xml文件中只能设置profile的如下属性:activationrepositoriespluginRepositoriesproperties原创 2016-08-25 09:05:26 · 9385 阅读 · 0 评论 -
Maven的settings.xml文件结构之activeProfiles
无论是在pom.xml文件中,还是在settings.xml文件中,都可以配置多个。但是并非所有的都会被激活,即该的配置生效与否,可以通过如下方式进行控制:在pom.xml文件中通过的在settings.xml文件中通过的在settings.xml文件中通过其中,通过的配置激活对应的条件,这个在pom.xml文件中和在settings.xml文件中是一致的,详见pom.原创 2016-08-25 09:18:06 · 21063 阅读 · 0 评论 -
Unable to load the mojo 'add-source' from the plugin 'org.codehaus.mojo:build-helper-maven-plugin:1.
在Maven项目中,使用build-helper-maven-plugin插件辅助构建时,报错如下:Execution add-source of goal org.codehaus.mojo:build-helper-maven-plugin:1.9.1:add-source failed: Unable to load the mojo 'add-source' (or one of it原创 2016-10-11 14:48:15 · 4230 阅读 · 0 评论 -
代码质量管理工具SonarQube详解
SonarQube的目的是对项目的代码进行分析,发现代码质量问题,并提示开发人员改进。SonarQube由以下几个部分组成:1. SonarQube Platform,就是SonarQube服务器,这是SonarQube运行的基础。首先下载并解压缩SonarQube的发布软件;必要的情况下配置解压缩目录下的sonarqube/conf/sonar.properties文件;启动原创 2016-11-10 22:56:11 · 9981 阅读 · 2 评论 -
Apache Maven项目提供的Dependency插件详解
Dependency插件可以操作Maven构件(artifact),如复制并解压缩本地或远程Maven库中的构件到某个指定路径。Dependency插件的最新版本是2015.1.24发布的2.10。Dependency插件提供了大量的goals,常用的如下:dependency:analyzeanalyzes the dependencies of this project and de...原创 2016-11-07 22:28:22 · 8094 阅读 · 0 评论 -
Apache Maven项目提供的Compiler插件详解
Compiler插件用于编译Maven项目的Java源代码,最新版本是2016.2发布的3.5.1(刚刚看到,最新版本已经更新为3.8.0,2018.7.26更新)。Compiler插件提供了如下2个goal,默认都已经绑定到Maven的生命周期阶段,无需单独指出。compiler:compile,绑定到compile 阶段,用以编译main/路径下的源代码 compiler:testC...原创 2016-04-27 11:53:50 · 28184 阅读 · 0 评论 -
执行mvn时的java.lang.IllegalStateException: endPosTable already set 异常
异常表现:An exception has occurred in the compiler (1.8.0_31). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. In原创 2016-09-30 22:38:36 · 10985 阅读 · 0 评论