Maven

简介: 完全参考手册 还有谁比Nexus的出品公司sonatype更了解Maven的呢?so 戳下面的连接看reference http://books.sonatype.com/mvnref-book/reference/index.html Maven ArcheType ArcheType is a Maven project templating toolkit -  

完全参考手册

还有谁比Nexus的出品公司sonatype更了解Maven的呢?so 戳下面的连接看reference


Maven ArcheType

ArcheType is a Maven project templating toolkit -  http://maven.apache.org/guides/introduction/introduction-to-archetypes.html

Create project from ArcheType -- http://maven.apache.org/archetype/maven-archetype-plugin/usage.html

Create your own ArcheType -- http://maven.apache.org/guides/mini/guide-creating-archetypes.html

Maven 提供的一些ArcheTypes -- http://maven.apache.org/archetype/maven-archetype-bundles/


Maven Profile

Profile可以让我们定义一系列的配置信息,然后指定其激活条件。这样我们就可以定义多个profile,然后每个profile对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果。

Maven Plugin

引用Plugin ( Referencing Plugin)

可以通过两种方式应用Plugin,groupId:artifact:version:goal 或者使用plugin的Prefix,例如下面的两个command效果是一样的。

mvn help:describe -Dplugin=compiler -Dmojo=compile -Dfull

mvn org.apache.maven.plugins:maven-help-plugin:2.2:describe -Dplugin=compiler -Dmojo=compile -Dfull

注意在maven中,一个插件目标(Goal)也被认为是一个Mojo

将Plugin加入你的Lifecycle

 For example, let's say you have a goal display:time  that echos the current time to the commandline, and you want it to run in the process-test-resources  phase to indicate when the tests were started. This would be configured like so:

...
 <plugin>
   <groupId>com.mycompany.example</groupId>
   <artifactId>display-maven-plugin</artifactId>
   <version>1.0</version>
   <executions>
     <execution>
       <phase>process-test-resources</phase>
       <goals>
         <goal>time</goal>
       </goals>
     </execution>
   </executions>
 </plugin>
...
 
 
 
 

怎样通过Prefix找到你的Plugin (Plugin Prefix Resolution)

By default, Maven will make a guess at the plugin-prefix to be used, by removing any instances of "maven" or "plugin" surrounded by dashes in the plugin's artifact ID. The conventional artifact ID formats to use are:

  • maven-${prefix}-plugin - for official plugins maintained by the Apache Maven team itself (you must not use this naming pattern for your plugin, see this note for more informations)
  • ${prefix}-maven-plugin - for plugins from other sources
By default, Maven will search the groupId  org.apache.maven.plugins  for prefix-to-artifactId mappings
默认,Maven会搜索apache groupId (repository)去匹配与prefix相符的plugin(用上面提到的规则),如果想把自己开发的plugin或第三方plugin也设置为搜索目标,咋办尼?
很简单,在~/.m2/settings.xml中加入pluginGroup即可
	<pluginGroups>
		<pluginGroup>com.alibaba.org.apache.maven.plugins</pluginGroup>
		<pluginGroup>com.alibaba.maven.plugins</pluginGroup>
	</pluginGroups>	



开发自己的Plugin

注意在Plugin命名时,maven-${prefix}-plugin 是Apache的保留方式,具有知识产权,最好不要做违背知识产权的事(infringement)

${prefix}-maven-plugin




目录
相关文章
|
XML Java 数据格式
Spring源码分析
Spring源码分析
|
7月前
|
机器学习/深度学习 自然语言处理 算法
AI 世界生存手册(一):从LR到DeepSeek,模型慢慢变大了,也变强了
大家都可以通过写 prompt 来和大模型对话,那大模型之前的算法是怎样的,算法世界经过了哪些比较关键的发展,最后为什么是大模型这条路线走向了 AGI,作者用两篇文章共5.7万字详细探索一下。
AI 世界生存手册(一):从LR到DeepSeek,模型慢慢变大了,也变强了
|
网络协议 应用服务中间件 网络安全
阿里云免费SSL申请流程(白嫖20张SSL免费证书)2024年新版教程
本文详述了2024年最新的阿里云免费SSL证书申请流程。用户可通过阿里云数字证书管理服务控制台一键申请最多20张免费单域名SSL证书,每张证书有效期为3个月。首先登录控制台,选择“SSL证书管理”下的“个人测试证书”,同意协议并完成购买流程。之后需创建证书、输入域名等信息并进行域名验证。验证方法包括手动DNS验证、域名授权自动化验证或文件验证。完成验证后,等待审核通过即可下载适用于不同服务器类型的SSL证书。请注意,阿里云免费SSL证书到期后不支持续费,需重新申请。了解更多详情,请访问阿里云官方SSL证书页面。
|
7月前
|
JSON Java 数据格式
微服务——SpringBoot使用归纳——Spring Boot中的全局异常处理——处理系统异常
本文介绍了在Spring Boot项目中如何通过创建`GlobalExceptionHandler`类来全局处理系统异常。通过使用`@ControllerAdvice`注解,可以拦截项目中的各种异常,并结合`@ExceptionHandler`注解针对特定异常(如参数缺失、空指针等)进行定制化处理。文中详细展示了处理参数缺失异常和空指针异常的示例代码,并说明了通过拦截`Exception`父类实现统一异常处理的方法。虽然拦截`Exception`可一劳永逸,但为便于问题排查,建议优先处理常见异常,最后再兜底处理未知异常,确保返回给调用方的信息友好且明确。
905 0
微服务——SpringBoot使用归纳——Spring Boot中的全局异常处理——处理系统异常
|
11月前
|
Java 开发者 Spring
Spring高手之路24——事务类型及传播行为实战指南
本篇文章深入探讨了Spring中的事务管理,特别是事务传播行为(如REQUIRES_NEW和NESTED)的应用与区别。通过详实的示例和优化的时序图,全面解析如何在实际项目中使用这些高级事务控制技巧,以提升开发者的Spring事务管理能力。
272 1
Spring高手之路24——事务类型及传播行为实战指南
|
Java Maven 开发工具
知识分享之Java——Maven的settings常用配置文件
日常我们开发时,我们会遇到各种各样的奇奇怪怪的问题(踩坑o(╯□╰)o),这个常见问题系列就是我日常遇到的一些问题的记录文章系列,这里整理汇总后分享给大家,让其还在深坑中的小伙伴有绳索能爬出来。 同时在这里也欢迎大家把自己遇到的问题留言或私信给我,我看看其能否给大家解决。
610 0
知识分享之Java——Maven的settings常用配置文件
|
XML Java 数据库连接
深入解析 Spring 配置文件:从基础到高级
【8月更文挑战第3天】Spring配置文件是构建与管理Spring应用的核心,它涵盖了从基础到高级的各种配置技巧。基础配置采用`.xml`格式定义Bean及其依赖;中级配置包括设置Bean作用域及引入属性文件;高级配置则涉及AOP、事务管理和与其他框架的整合。熟练掌握这些配置能帮助开发者构建出更为灵活且易维护的应用系统。
237 0
Mybatis-Plus实现Service封装
Mybatis-Plus实现Service封装
409 1
|
移动开发 缓存 JavaScript
|
程序员 计算机视觉
程序员的“防御性编程”
最近都在聊程序员要做好“防御性编程”,"防御性编程"的概念从之前的“保护程序”一下子变成了现在的“保护程序员”,一字之差,千差万别。
程序员的“防御性编程”