Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1063183
  • 博文数量: 284
  • 博客积分: 8223
  • 博客等级: 中将
  • 技术积分: 3188
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-01 13:26
文章分类

全部博文(284)

文章存档

2012年(18)

2011年(33)

2010年(83)

2009年(147)

2008年(3)

分类: Java

2011-10-15 17:17:29

     首先,下载源码,解压文件后,文件夹下存在三个目录:

     Projectlibdocumentationproject是源码,lib是编译后生成的jar包,documentation是生成的doc文件。要编译项目,首先查看project文件夹下的readme文件。这才知道原来hibernate是使用gradle来编译的。

 

一.Gradle的安装:

    这里简单介绍下gradlegradle用来编译java代码,它包含编译工具ant,自动管理jar包的依赖关系,支持已有的mavenIvy仓库。使用动态语言groovy作为其核心。下载gradle的包,gradle-1.0-milestone-3-all.zip,解压后,gradle-1.0-milestone-3\docs下存放了gradle的文档。在机器path的环境变量中增加gradlebin目录,如:E:\学习资料\gradle\gradle-1.0-milestone-3\bin,如果配置成功,则应该可以在dos的终端中键入gradle后,获得一些显示。

二.使用gradle进行编译

1.       安装完成后,进入hibernate源码路径project下执行编译命令gradle build,执行后报错:

应该是缺少依赖库gradle-upload-auth-plugin1.0.2-snapshot版本,而且报错也告诉我们,这个库已经在上面的几个网址查找过,没找到。需要两个文件,一个jar,一个pom文件。

Jar包通过google,在下面的网址找到了这个jar的下载

pom通过google,在下面的网址找到:

根据上面的报错,知道这个文件应该是首先从本地文件夹下寻找的,路径为file:/C:/Users/caijie/.m2/repository/org/hibernate/build/gradle/gradle-upload-auth-plugin/1.0.2-SNAPSHOT/gradle-upload-auth-plugin-1.0.2-SNAPSHOT.pom

file:/C:/Users/caijie/.m2/repository/org/hibernate/build/gradle/gradle-upload-auth-plugin/1.0.2-SNAPSHOT/gradle-upload-auth-plugin-1.0.2-SNAPSHOT.jar
这里,首先创建需要的文件夹,不过注意,.m2这个文件夹不可能通过鼠标操作获得,需要通过cmd命令行创建。把文件放到该路径下,重新执行。

2.       重新执行后,出现下面的情况

额,此时才发现,原来拷贝网页中的内容然后创建pom文件似乎有问题,直接从网页打开pom文件后另存一个pom文件出来问题就解决了。但也出现另外一个问题,

汗死,原来pom文件名虽然改成了gradle-upload-auth-plugin-1.0.2-SNAPSHOT.pom,但是pom文件里面的版本号没改。修改上述问题以后重新执行,出现下面的提示:

乖乖,终于搞定一个jar,上面的提示说明其他的引用关系找不到,ok,按照上面的做法一个一个搞定。

3.       搞定上述问题后重新执行,最后出现如下报错,使用gradle build –debug调试后,发现如下错误:

根据提示,检查代码,发现注释中存在一些乱码,怀疑是老外的代码里面用了些特殊的字符,没关系,反正我也只在乎代码内容,将这些乱码的地方删除掉。

4.       在查找问题的过程中,发现一个帖子:

   hibernate源码org.hibernate.hql.antlr文件夹空的解决办法

下载后的hibernate源码文件中org.hibernate.hql.antlr是空的,要自己编译。
A special package for ANTLR-generated parser classes.

NOTE: The classes in this package are generated from the ANTLR grammar files, do not register them into version control.

1.
antlr.jar拷到jdklib下面,配置环境。

2.
进入源码的grammar文件夹。

3.
按顺序运行java antlr.Tool hql.gjava antlr.Tool hql-sql.g
java antlr.Tool sql-gen.g
4.
把生成的java文件考到org.hibernate.hql.antlr下面即可。

按照上述文档中的说明,我去检查了文件系统,发现,确实缺少文件,于是配置antlr,最后安装说明,在文件夹中执行antlr的脚本如下图。

再完成了上述操作后,我再次执行gradle build

提示操作成功。我对hibernate的编译操作终于完成了

阅读(3121) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~