Maven

本文深入探讨了Maven中ArcheType、Profile、Plugin的高级使用方法,包括如何创建、使用和配置这些关键组件,以实现灵活的项目管理和构建流程。通过实例演示了如何利用ArcheType快速初始化项目,如何定义Profile以适应不同环境需求,以及如何通过Plugin定制构建过程,提升开发效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

完全参考手册

还有谁比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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值