学习了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)
分享到:
相关推荐
Maven 安装插件 glassfish 热部署 加快glassfish 开发速度 图解 自己总结的,有什么不足的请指出
该课程是北风品牌课程-《BF-TECH J2EE软件工程师就业课程》 第五阶段:项目实战一、开发基于SSH2+Maven+JeasyUI+MySQL技术的 【易买网电子商务交易平台】课程。 jQuery EasyUI简称jeasyui,也就叫easyui,是一组基于...
基于Maven插件的全局性重用 1.5. 一个“项目”的概念模型 1.6. Maven是Ant的另一种选择么? 1.7. 比较Maven和Ant 1.8. 总结 2. 安装和运行Maven 2.1. 验证你的Java安装 2.2. 下载Maven 2.3. 安装Maven ...
maven2的插件,用于在eclipse下进行maven2的快速配置 打开eclipse .选择菜单 window ->preferences ; 在新打开的对话框的左边的一列会看到一个名为Maven2的选项。鼠标单击,然后点击右边的Local Repository Folder ...
支持插件开发,将插件jar包放至根目录libs下即可自动加载(插件开发示例见,目前刚刚搭建,后续会持续更新); 环境搭建说明: 开发环境为jdk1.8,基于maven构建; 本项目使用了lombok,在查看本项目时如果您没有下载...
jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+...
Java毕业设计--基于...论文的最后章节总结一下自己完成本论文和开发本项目的心得和总结。通过人事管理系统将会使人事管理各个方面的工作效率带来实质性的提升。 关键字:人事管理系统;B/S模式;java技术;软件框架
本系统界面良好,操作简单方便,通过系统概述、系统分析、系统设计、数据库设计、系统测试这几个部分,详细的说明了系统的开发过程,最后并对整个开发过程进行了总结,实现了海滨体育馆相关信息管理的重要功能。...
⑤ 开发环境:IDEA、JDK、Maven、Mysql ⑥ JDK版本:JDK1.8 ⑦ Maven包:Maven3.6 ⑧ 数据库:mysql 5.7 ⑨ 服务平台:Tomcat 8.0/9.0 ⑩ 数据库工具:SQLyog/Navicat ⑪ 开发软件:eclipse/myeclipse/idea ⑫ 浏览器...
在系统的整个开发过程中,首先对系统进行了需求分析,设计出系统的主要功能模块,包括学生功能模块、教师功能模块以及管理员功能模块三大部分,其次对网站进行总体规划和详细设计,最后对教学资源库系统进行了系统...
数据持久化框架技术课程实验报告及源码" 是一个涵盖了数据持久化框架的课程实验...总结和结论:报告总结了实验的主要发现,并提供了对所选框架的评价。它还可以讨论在实验过程中遇到的挑战和解决方案。 附带源代码:
如何从零创建我们的工程以及用到了哪些技术工具(比如IDEA、Lombok、Maven等)以及这些工具特性的简要介绍,接下来介绍了工程的划分、技术组件构成以及包结构 网站首页、商品分类两大功能展开,在介绍页面及功能的...
本系统架构 开发语言:Java ...最后对系统进行功能测试,并对测试结果进行分析总结,得出系统中存在的不足及需要改进的地方,为以后的系统维护提供了方便,同时也为今后开发类似系统提供了借鉴和帮助。
jdk1.8+MySQL5.7+maven3.6.3 技术栈 SpringCloud、Nacos、SpringBoot、Redis、MyBatis-Plus、Vue、element-ui、Nuxt 主要功能介绍 在线视频观看:播放进度记录、学习时长记录、学习课程记录 培训计划:后台规划...
最后对系统进行功能测试,并对测试结果进行分析总结,及时改进系统中存在的不足,为以后的系统维护提供了方便,也为今后开发类似系统提供了借鉴和帮助。 本疫情期间医院门诊管理系统采用的数据库是Mysql,使用SSM...
项目脚手架用了maven新版本插件,不能向下兼容,maven版本在3.5以下$ {reversion}不能被正确替换,将maven升级即可,项目快照版本已传到中央仓库中,稳定版等功能再完善后再发布,现在大家可以先用到快照版本,1.0.0...
插件环境 杰森 招摇2 运行方式 提示:如果是fork的朋友,同步代码的请参考: : git clone https://github.com/JohnnyHL/Think-In-Java.git 使用IDEA:clone下来的项目 在IDEA中Maven项目的面板导入项目根目录下的...
任何行业持续发展都依赖于经验的日积月累。要让自己的职业之路走得...两种方式:开源项目 Tale , mBlog 搭建博客都需要有 Java 语言基础,需要掌握 Java 开发环境搭建,Maven工具配置和使用。多种主题自由切换,支持自
项目介绍: 采用java技术构建的一个管理系统。整个开发过程首先对系统进行需求分析,得出...开发环境: 编程语言:Java 数据库 :Mysql 系统架构:B/S 后端框架:SpringBoot 编译工具:idea或者eclipse,jdk1.8,maven