《Maven官方指南》生成源文件
原文链接 译者:carvendy
生成源文件
让我们运行这个小例子。为了生成源文件你必须有一个插件它是在generate-sources周期中有参与的,像ANTLR4 Maven Plugin。
所以这一切都很好,我们有一个插件想要从Antlr4 语法中生成一些源码但是我们应该怎么使用呢?你需要指定你想要使用的在你的POM中。
原文链接 译者:carvendy
让我们运行这个小例子。为了生成源文件你必须有一个插件它是在generate-sources周期中有参与的,像ANTLR4 Maven Plugin。
所以这一切都很好,我们有一个插件想要从Antlr4 语法中生成一些源码但是我们应该怎么使用呢?你需要指定你想要使用的在你的POM中。
原文链接 译者:carvendy
这个指南预期是作为使用第一次使用Maven工作的,但是也预期服务作为一个单独的引用和常用的解决方案用例。对第一次的用户,这推荐你按顺序一步一步来看材料。对于熟悉Maven的用户,指南努力地提供需要的快速方案。假设你已经下载了Maven和安装好Maven在你本地机器。如果你这样做请参考下载与安装的指令。
好,你现在已经安装好Maven了和我们准备开始。在我们今天例子之前,我们将简要过一遍什么是Maven和它能怎么帮助你处理日常工作并和你团队成员一起协助。Maven将,当然,为了小项目工作,但是Maven表现突出在帮助团队有效操作并允许团队成员着眼于项目需要什么相关者。你可以把构建的事项交给Maven。
原文链接 译者:carvendy
当你执行maven的时候使用一个标准的生命周期,这些插件参与的生命周期就像是一个相当简单的进程。无论如何,当你从命令行中引用一个指令,例如clean,Maven必须有一些可靠的方式让clean插件前缀为maven-clean-plugin。这提供了简洁的命令行调用,当保存这些描述性的插件的真实工件id。
对于很多复杂性的问题,不是所有插件应该被强制使用同样的组id(在仓库中)。从这些组id在一个项目中假定被控制,和对于Maven多个项目可能使用的插件,它跟随着插件前缀匹配必须容纳多个插件组id。 对于地址关系,Maven提供了一块新的的仓库级别元数据(与任何单一的工件无关)对于插件组来说,在一个插件匹配管理者来组织多个插件组合提供功能性的搜索。
为了给使用者方便的前缀去引用你的插件,一个前缀必须与你的插件相关在构建的时候。在默认的情况下,Maven将令一个猜想的前缀被使用,被移除任何被“maven”或者“plugin”的连字符在这些插件的工件id。方便的工件id格式被定为:
如果你的插件工件id符合这个规则,Maven将会根据元数据中正确的前缀自动匹配你插件的组id在仓库中的路径。无论如何,如果你想自定义前缀来引用的你插件,你可以指定前缀来引导通过配置参数在maven-plugin-plugin在你的pom中:
<project>
...
<build>
...
<plugins>
...
<plugin>
<artifactId>maven-plugin-plugin</artifactId>
<version>2.3</version>
<configuration>
...
<goalPrefix>somePrefix</goalPrefix>
</configuration>
</plugin>
</plugins>
</build>
</project>
以上的配置讲允许使用者引用你的插件通过前缀somePrefix,作为一个例子:
mvn somePrefix:goal
对于每一个组id配置是为了搜索,Maven将:
在列表中每个插件包含一个前缀节点表示插件的命令行前缀,和一个工件节点, 提供的前缀映射对方提供了足够的信息来查找和使用插入部件。当一个插件被安装和发布,适当的元数据文件被放置和如果前缀匹配丢失了,修改前缀匹配。
默认情况下,maven将搜索组id org.apache.maven.plugins 为了前缀工件匹配插件,它需要在构建过程中执行。无论如何,前面提到的,使用者可能需要一个第三方的插件。从Maven项目被假定有控制的默认插件组,这意味着配置maven来搜索其他组的位置为了插件前缀匹配。
这很简单。在Maven配置文件(当前用户:${user.home}/.m2/settings.xml; 全局:${maven.home}/conf/settings.xml),你可以提供一个自定义的插件组项目,列出你想要搜索的插件(每个都在自己的plugingroup GroupID的子元素)。作为例子,如果我的项目使用了一个 模板文件,我可以设置:
<pluginGroups>
<pluginGroup>org.codehaus.modello</pluginGroup>
</pluginGroups>
这使我能够执行以下,这将从模式生成java类:
mvn -Dversion=4.0.0 -Dmodel=maven.mdo modello:java
Maven会搜索以下GroupID的搜索后,在用户设置中指定的任何插件组:
注意:当指定被使用的插件组在搜索的前缀匹配中,秩序是关键!被指定的一个插件组 com.myco.plugins有一个前缀clean,我可以覆盖maven-clean-plugin的时候,当clean:clean被调用的时候。 笔记2:想了解更多信息可以查看 settings.xml