Maven

完全参考手册

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

http://books.sonatype.com/mvnref-book/reference/index.html

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对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果。

http://haohaoxuexi.iteye.com/blog/1900568

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>	

http://maven.apache.org/guides/introduction/introduction-to-plugin-prefix-mapping.html

开发自己的Plugin

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

用${prefix}-maven-plugin

http://maven.apache.org/guides/plugin/guide-java-plugin-development.html

时间: 2024-12-09 02:04:44

Maven的相关文章

Maven入门(含实例教程)

原文地址:http://blog.csdn.net/u013142781/article/details/50316383 Maven这个个项目管理和构建自动化工具,越来越多的开发人员使用它来管理项目中的jar包.接下来小宝鸽,将从下面几个方向介绍maven: (1)Maven简单介绍 (2)Maven安装与配置 (3)Maven携手eclipse构建项目 (4)Maven的常用命令 (5)Maven实例 猿友门抓紧了,马上起飞了: (1)Maven的简单介绍 Maven这个个项目管理和构建自动

使用maven 容易遇到的问题

项目中使用了maven,而且搭建了nexus 私服. 经常会遇到如下问题: (一) 使用maven构建的项目下面都有一个pom.xml文件,里面设置了该项目的依赖的jar包.第一次因为没有联网或者nexus服务未启动,导致下载jar失败,以后依然下载失败.后来终于找到了原因: 因为第一次下载失败时,会在C:\Users\huangwei\.m2\repository 中生成对应jar包的lastUpdated文件,如xwork-core-2.1.6.jar.lastUpdated.因为有这个la

关于maven多项目之间的引用问题

问题描述 关于maven多项目之间的引用问题 现在是我的test-rop maven web中想引用 api接口中的一个server方法 我如何建立依赖关系才能引用到呢?我将api建到了web的依赖中了 但是还是引不到 这是我web的pom.xml中引用的配置 是通过maven生成的 <dependency> <groupId>com-lyl-base-api</groupId> <artifactId>com-lyl-base-api</artifa

maven surefire-maven-surefire-plugin使用

问题描述 maven-surefire-plugin使用 maven-surefire-plugin到底怎么用啊??网上找资料就说在控制台运行mvn test就可以了...到底在哪运行啊?请教下到底怎么用,从第一步开始. 解决方案 首先安装maven,然后在工程pom.xml配置maven-surefire-plugin.

the exception &quot;Failure to transfer org.apache.maven:maven-parent&quot; about Maven

   今天使用Maven碰到了这个异常,异常信息如下: Html代码   Failure to transfer org.apache.maven:maven-parent:pom:17 from http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has ela

maven pom聚合与继承

说到聚合与继承我们都很熟悉,maven同样也具备这样的设计原则,下面我们来看一下Maven的pom如何进行聚合与继承的配置实现. 一.为什么要聚合? 随着技术的飞速发展和各类用户对软件的要求越来越高,软件本身也变得越来越复杂,然后软件设计人员开始采用各种方式进行开发,于是就有了我们的分层架构.分模块开发,来提高代码的清晰和重用.针对于这一特性,maven也给予了相应的配置. 情景分析一: 我们在开发过程中,创建了2个以上的模块,每个模块都是一个独立的maven project,在开始的时候我们可

转 maven常用内置变量

Intro Because I couldn't find a clear overview of which properties are availabe in maven2 I started this page. It is a collection of things found in the offcial maven documentation and postings to the maven user mailing list. Note: In Maven 3.0, all 

【转载】Jenkins + Git + Maven + tomcat集成环境搭建

本文转载自http://shift-alt-ctrl.iteye.com/blog/2208786   折腾了好几天,终于吧Jenkins + Git + Maven + tomcat集成环境搭建起来了,最终主要实现"自动构建.部署"web应用.   1.安装环境     操作系统:Centos 6.5     JDK:1.7.x     Maven:3.1.x     Git: 1.7.1,自建GitLab平台     tomcat:7.x       上述宿主机器2台:192.16

常用Maven插件介绍(下)

转自:http://www.infoq.com/cn/news/2011/05/xxb-maven-8-plugin     我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说,每个任务对应了一个插件目标(goal),每个插件会有一个或者多个目标,例如maven- compiler-plugin的compile目标用来编译位于src/main/java/目录下的

Maven发布工程到公共库

1.发布工程 新建一个 Maven build 选择要发布的工程 转载:http://www.cnblogs.com/lovesong/p/4542692.html