Fmpp+Ant生成类文件

本文介绍如何利用FMPP从XML配置文件自动生成类文件,并通过Ant任务进行项目构建,简化类生成和部署流程。

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

需求是根据模板类生成一些类。

看了一篇帖子Ant+Freemarker+xml 生成Html , 生成的文件名只能和模板类同名。查了freemarker的文档,没有发现支持这个功能。 FMPP 能够完成这个任务。

 

Download fmpp_0.9.14.tar.gz

 

目录结构

 

数据源books.xml

<?xml version="1.0" encoding="UTF-8"?>
<classes>
	<packagename>org.myym.books</packagename>
	<class>
		<name>ScienceFiction</name>
	</class>
	<class>
		<name>Novel</name>
	</class>
	<pluginpackagename>org.myym.books.editor</pluginpackagename>
</classes>

 

模板

<@pp.dropOutputFile />
<#list model.classes.class as class>
<@pp.changeOutputFile name="${class.name}Editor.java" />
package ${model.classes.pluginpackagename};

import ${model.classes.pluginpackagename}.Type
public class ${class.name}Editor{

    protected String getEditorTitle() {
        return "${class.name} Editor";
    }
    
    protected Type getType(){
    	return Type.${class.name?upper_case};
    }
    
}

</#list>

模板文件的后缀名是任意的。这里命名成ftl是因为安装了'FreeMarker IDE' plug-in.可以高亮代码

 

<@pp.changeOutputFile name="${class.name}Editor.java" />

name可以指定文件夹

A.name="src/${class.name}Editor.java" 在模板文件路径下生成src的文件夹
并在src文件夹下生成.java文件

B.name="/src/${class.name}Editor.java' 则在destdir目录下生成src文件夹
	<fmpp srcdir="templates"
    		destdir="gen-out"
        	logfile="log.fmpp"
        	data="model:xml(../model/books.xml)"/>
 

 

build.xml

<project name="Fmpp-Ant" default="generate">
	<taskdef name="fmpp" classname="fmpp.tools.AntTask">
		<classpath>
			<fileset dir="lib">
				<include name="*.jar" />
			</fileset>
		</classpath>

	</taskdef>

	<target name="generate">
		<fmpp srcdir="templates"
    		destdir="gen-out"
        	logfile="log.fmpp"
        	data="model:xml(../model/books.xml)"/><!--relative path to 'srcdir'-->
	</target>
	
	<target name="clean" description="Deletes the output">
		<delete includeemptydirs="true"  verbose="true">
			<fileset dir="." includes="gen-out/"/>
		</delete>
	</target>
</project>

 

运行ant-task 'generate'后,刷新Project, 会生成一个文件夹'gen-out'

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值