刚刚开始看xdoclet,不知道是不是写xml文件的时候出来错。大家看看,我只贴出生成映射文件的那一段。
<property name="xdoclet.lib.dir" value="${basedir}/WebRoot/WEB-INF/lib/xdoclet" />
<property name="project.lib.dir" value="${basedir}/WebRoot/WEB-INF/lib" />
<property name="project.src.dir" value="${basedir}/src" />
<property name="project.resources.dir" value="${basedir}/doc/dbscript" />
<target name="xdoclet">
<taskdef name="hibernatedoclet" classname="org.xdoclet.ant.XDocletTask" classpathref="xdoclet.task.classpath" />
<path id="xdoclet.task.classpath">
<fileset dir="${xdoclet.lib.dir}">
                <include name="**/*.jar"/>
            </fileset>
            <fileset dir="${project.lib.dir}">
                <include name="**/*.jar"/>
            </fileset>
            <pathelement location="${xdoclet.plugin.install.dir}/plugins/xdoclet-plugin-command.jar"/>
</path>
<!-- 生成映射文件的ant配置 -->
<target name="generate-mapping" depends="xdoclet"> 
<xdoclet> 
<fileset dir="${project.src.dir}">
<include name="**/*.java" />
</fileset>
<component classname="org.xdoclet.plugin.hibernate.HibernateMappingPlugin" version="3.0" destdir="${project.src.dir}"/>
</xdoclet> 
</target>执行的效果是:
Buildfile: build.xmlxdoclet:
Warning: Reference xdoclet.task.classpath has not been set at runtime, but was f
ound during
build file parsing, attempting to resolve. Future versions of Ant may support
 referencing ids defined in non-executed targets.BUILD SUCCESSFUL
Total time: 0 seconds然后什么也没有生成。各位看看有没有遇到过类似问题,是什么原因引起的呢?

解决方案 »

  1.   

    <fileset dir="src"  includes="com/xxx/*.java" >
    </fileset>
    有可能是没有找到java文件,指定包 试试
      

  2.   

    <?xml version="1.0" encoding="GBK"?><project name="构建脚本" default="生成Hibernate配置文件" basedir="."> <property name="src.dir" value="${basedir}/src"/><property name="build.dir" value="${basedir}/bin"/><property name="webapp.dir" value="${basedir}/src/webapp"/><property name="xdoclet.home" value="D:/opensources/xdoclet/xdoclet-plugins-1.0.3"/> <!-- Build classpath --><path id="xdoclet.task.classpath"><fileset dir="${xdoclet.home}/lib"><include name="**/*.jar"/></fileset><fileset dir="${xdoclet.home}/plugins"><include name="**/*.jar"/></fileset></path><taskdef name="xdoclet"classname="org.xdoclet.ant.XDocletTask"classpathref="xdoclet.task.classpath"/><target name="生成Hibernate配置文件"><xdoclet><fileset dir="${src.dir}/com/yzk/oa/model"><include name="**/*.java"/></fileset>            <componentclassname="org.xdoclet.plugin.hibernate.HibernateConfigPlugin"destdir="${src.dir}"version="3.0"hbm2ddlauto="update"jdbcurl="jdbc:mysql://127.0.0.1/oa"jdbcdriver="com.mysql.jdbc.Driver"jdbcusername="root"jdbcpassword="root"dialect="org.hibernate.dialect.MySQLDialect"showsql="true"/></xdoclet></target><target name="生成hibernate映射文件"><xdoclet><fileset dir="${src.dir}/com/yzk/oa/model"><include name="**/*.java"/></fileset><component classname="org.xdoclet.plugin.hibernate.HibernateMappingPlugin"version="3.0"destdir="${src.dir}"/></xdoclet></target></project>
     
      

  3.   

    谢谢,我觉得是否和ant报出来的警告有关系。
    to,scueczhang:
    你那个是从网上某个地方抄过来的吧。能否指点一下我可能错误的位置。我看不出来你抄过来的那一段和我自己设置的那一段有什么本质的区别。谢谢
      

  4.   

    把path和taskdef 位置互换一下,先定义path在定义taskdef
    http://www.nabble.com/Target-%22%C3%BBf%22-does-not-exist-in-the-project-%22null%22.-td22181547.html
      

  5.   

    各位:根据swandragon指出的问题,我已将位置更换,现在那个警告已经不再报了。但是映射文件还是没有生成。甚至我故意将生成映射文件的那一段写错,ant也报告的是xdoclet运行成功。说明那段配置根本就没有运行。
      

  6.   

    配置了的,我截一段吧:/**
     * @hibernate.class table="servers"
     * @hibernate.mate attribute="class-description" value="记录服务器的配置信息"
     * @author sliverFly
     * @see xdoclet
     */
    public class Servers implements Serializable {
    /**
     * 
     */
    private static final long serialVersionUID = 7269795515944922978L;

    private String serverName;
    private String host;
    private String db;
    private String username;
    private String password;
    private Integer port;
    private String socket;
    private String wrapper;
    private String owner;
    /**
     * @hibernate.id generator-class="assigned" 
     * @return the serverName
     */
    public String getServerName() {
    return serverName;
    }
    /**
     * @hibernate.property column="host"
     * @return the host
     */
    public String getHost() {
    return host;
    }
      

  7.   

    最恼火的是,我故意把生成映射文件的那一段配置写错,NND,都报告运行成功了。太阳~~~
      

  8.   

    我有个代码生成器是用xdoclet做的,可以去参考下:
    http://topic.csdn.net/u/20091010/15/c9a70b81-9566-4610-9724-59d64f895da8.html
      

  9.   

    问题解决了,配置文件的问题哈,主要是才接触xdoclet,关于xdoclet是怎样完成运行定义的任务的这个原理不是很清楚。现在清楚了哈。谢谢各位。
      

  10.   

    还是看xdoclet的官方文档来得快啊~~~