`
dingjob
  • 浏览: 183213 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

maven 插件开发总结

阅读更多

学习了Maven的插件开发后,看了下我们项目的maven管理。得出一些结论:

 一. 一点基础

1. 当你省略了 插件的 packageId和version等,maven就会多执行一些查找的操作,所以命令不是越精简越好。精简意味着你节省的时间,maven都会将它花在查找和遍历上。

 

2.-DgroupId=com.job.maven.plugins -DartifactId=greeting-maven-plugin

 

DgroupId 为 项目的目录,也是发布到本地后的maven库路径  DartifactId 为项目名称。

 

二.选择一个插件解析项目结构

1. 如何将你的default配置写入到antx.perpties?

 

项目中配置了如下插件,主要作用是在build的时候将task.schedule.clearLogData2这种参数等set为相应值,下

面详细介绍这种插件的作用和对应pom文件解析。

 

<groupId>com.job.maven.plugins</groupId>
	<artifactId>maven-autoconf-plugin</artifactId>
	<version>0.2</version>
<executions>
	<execution>
		<phase>process-resources</phase>
			<goals>
			<goal>config</goal>
			</goals>
	</execution>
</executions>

 

 

对应packaging项的配置,一般总体的parent配置文件如下:

<name>aa.project</name>
 <groupId>com.job.parent</groupId>
 <version>1.2.0</version>
 <artifactId>parent.project</artifactId>
 <packaging>pom</packaging>

 

而对应的子项目下则定义为 jar包或者war包,如下:

 

 <groupId>com.job.child1</groupId>
  <artifactId>child1.webapp</artifactId>
  <packaging>war</packaging>

packaging有四种取值:pom,war,jar等,对于总控的pom 它是用来继承的,不需要将${变量}的这种形式进行一个配置,而对于子项目是需要的,我们来看其插件源码。

 

 原理是:如果找到总控的pom,则直接跳过,如果是war包或者jar包等子项目的,则将其default值写入config.perperties,并写到child1.properties。

 

 

2.  如何将生成的config.perperties读出来,什么时候读出来?

 

写到config.properties里面的变量,会在容器启动阶段将其缓存起来,我们build后的需要变量的xml文件并没有直接存值.打开一个jar包的xml配置可以看到

 <bean id="esbPriceService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
  <property name="serviceUrl" value="${hessian.url.esbPriceService}" /> 
  <property name="serviceInterface" value="org.esb.biz.product.EsbPriceService" /> 
- <property name="proxyFactory">
  <ref bean="hessianProxyFactory" /> 
  </property>
 </bean>

 所以这个是动态加载的过程,靠的是Spring配置的 PropertyResourceConfigurer,

 

<bean id="propertyConfigurer"
		class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="properties">
			<ref bean="envProperties"></ref>
		</property> 
	</bean>
	
	<bean id="envProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
		<property name="locations">
			<list>
				<value>classpath*:risk.properties</value>
			</list>
		</property>		
		<property name="fileEncoding">
			<value>GB2312</value>
		</property>
	</bean>
	

 

 这里我想到,如果这样的话,发布的时候配置文件更新,是可以直接通过更新config.properties,并刷新下内存来实现,这里恐怕就要借鉴规则引擎后台刷新内存的方式了。(本来是静态的,改成动态的还是有问题的,比如,如何在改变时禁止外部访问,可以设计为动态的,类似jboss的开发模式或者jtools)

 

分享到:
评论
1 楼 wzju64676266 2010-07-14  
你是阿里巴巴的同事吗

相关推荐

    Myeclipse6.5的Maven插件

    总结来说,MyEclipse 6.5的Maven插件是Java开发者必备的工具之一,它简化了项目构建和依赖管理,提高了开发效率,而其离线安装和良好的拔插性更是为不同环境下的开发工作提供了便利。正确理解和熟练使用Maven插件,...

    eclipse安装maven插件需要包

    总结,离线安装Eclipse的Maven插件是一种在无网络或网络不稳定情况下的有效解决方案。通过配置Windows的Maven环境和在Eclipse中进行离线安装,我们可以确保开发过程中对Maven的正常使用,实现项目的高效管理和构建。

    安装Jenkins的git和maven插件

    总结来说,安装Jenkins的Git和Maven插件涉及以下几个关键步骤: 1. 下载Git Plugin和Maven Integration Plugin的.hpi文件。 2. 在Jenkins管理界面手动上传插件并安装。 3. 配置Git全局设置和SSH密钥。 4. 配置Maven...

    apache-maven插件

    Maven插件是实现特定构建任务的可插拔组件,如编译代码(maven-compiler-plugin)、打包应用(maven-jar-plugin)或运行单元测试(maven-surefire-plugin)。开发者可以根据需要选择和配置相应的插件,以实现特定的...

    Myeclipse10安装maven插件

    ### MyEclipse10安装与配置Maven插件详尽指南 #### 一、Maven简介及重要性 Maven是一款强大的项目管理工具,主要用于Java项目的构建、依赖管理和项目信息管理。通过Maven,开发者可以方便地管理项目的依赖关系、...

    eclipse的maven插件

    Eclipse的Maven插件,即Maven Integration for Eclipse(简称m2e),是开发者在Eclipse集成开发环境中管理Maven项目的重要工具。它提供了与Maven生命周期的紧密集成,使得用户可以在Eclipse内部进行构建、编译、测试...

    maven 环境搭建总结

    - **Nexus简介**:Nexus是一个流行的私有Maven仓库管理系统,可以帮助团队管理和分发内部开发的依赖库以及外部依赖库。 - **配置settings.xml**:为了使Maven能够正确地与Nexus交互,需要在 `settings.xml` 文件中...

    Eclipse安装Maven插件

    通过上述步骤,不仅能在Eclipse中成功安装Maven插件,还能对Maven环境进行有效配置,实现项目依赖管理和自动化构建,极大地提高了Java项目的开发效率和质量。对于Java开发者而言,掌握Eclipse与Maven的集成方法,是...

    maven插件用来分布式集成开发的

    Maven插件是Java开发中的重要工具,特别是在分布式集成开发中发挥着核心作用。Maven作为一个项目管理和综合工具,它简化了构建、依赖管理和项目信息管理的任务。本文将深入探讨Maven插件在分布式集成开发中的应用...

    jenkins 必装maven插件

    总结来说,Jenkins Maven插件是实现Java项目持续集成的关键工具,通过手动安装和配置,即使在网络受限的环境下也能确保CI流程的正常运行。结合Maven的强大功能,可以构建出高效、稳定的自动化构建和部署系统。

    Maven插件源码:根据库表生成实体类&根据实体类生成库表

    总结来说,"Maven插件源码:根据库表生成实体类&根据实体类生成库表"是一个高效且实用的开发工具,它整合了数据库与Java代码的自动化生成,提高了开发效率,降低了错误的可能性。对于大型项目或频繁迭代的系统,这样...

    maven插件的demo

    在Java开发领域,Maven是一个广泛使用的项目管理工具,它帮助开发者构建、管理和部署应用程序。...`demo-maven-plugin`和`mavenplugintest`这两个文件为我们提供了一个实践和学习Maven插件开发的实例。

    maven插件

    总结,Maven插件是Maven构建系统的核心部分,它们执行各种任务,涵盖了项目构建的全过程。理解并熟练运用Maven插件能够极大地提高开发效率,确保项目构建的稳定性和一致性。通过深入学习插件源码,开发者可以进一步...

    eclipse中Maven安装插件和maven.zip

    总结一下,Eclipse中的Maven插件让开发者能够方便地在IDE内管理Maven项目,而不用离开Eclipse去执行命令行操作。通过正确安装和配置插件,以及理解Maven的基本概念和操作,可以大大提高开发效率,减少项目管理的复杂...

    maven仓库插件

    Maven插件是Maven生命周期中的执行单元,它们执行特定的任务,如编译源代码、打包项目、运行测试等。Maven仓库插件则是专门用于处理仓库操作的插件,包括下载依赖、上传构建的工件以及管理仓库配置。 ** Maven仓库...

    maven插件安装以及eclipse安装maven插件的资料

    本文将详细介绍如何安装和配置Maven,以及在Eclipse中安装Maven插件。 首先,我们来了解Maven的基本概念。Maven基于项目对象模型(Project Object Model,POM)来管理项目,POM是一个XML文件,包含了项目的配置信息...

Global site tag (gtag.js) - Google Analytics