1.下载roller 3.1的源代码和
required jars(一定要下载,否则没有办法编译和运行)
required jars :
https://roller.dev.java.net/servlets/ProjectDocumentList?folderID=6962&expandFolder=6962&folderID=6959
2.然后在命令行中源代码的目录下面执行build all命令。
如果你的JDK环境大于1.4了,虽然可以调整兼容等级,但还是建议你使用JDK1.4,为了不改变你的原始JDK环境,可以在build.bat中加入
set JAVA_HOME=D:\j2sdk1.4.2_17\
set PATH=%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
set CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
来临时设置新jdk
3.build all过后,首先,他会生成所有的wrapper类等等,将生成的所有的类源文件(src下的)拷贝到roller源代码根目录src目录中,webapp中的内容拷贝到根目录下web中,在compile目录下的business\org\apache\roller\pojos\和business\org\apache\roller\planet\pojos\中有很多hbm.xml需要拷贝到源代码同样的目录中,还有就是将classes下的所有文件拷贝到roller的src根目录下。
其次,如果你需要覆盖一些属性,例如数据库连接配置等等,需要在src下建立一个roller-custom.properties文件,放入一些你要覆盖的配置项,例如我要连接SQL Server数据库,则这样配置
hibernate.dialect=org.hibernate.dialect.SQLServerDialect
jdbc.driverClass=com.microsoft.jdbc.sqlserver.SQLServerDriver
jdbc.connectionURL=jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=roller31;User=sa;Password=
jdbc.username=sa
jdbc.password=
当然,不要忘了把相关jar包放进去。
其他配置请参考Install Guide
4.下面是建立数据库,如果你使用的SQL Server,建议你将rollerdb脚本中的text类型字段,全部改为ntext,因为SQL Server jdbc的驱动对text的支持存在bug...会有问题的。
如果你使用的tomcat 5.x,请去下载一个兼容包,用来兼容在JDK 1.4上的运行,默认配置下只可以在jdk 1.5上稳定运行。
5.建立一个Web Project,将roller3.1/src中所有文件拷贝到项目的src中,将roller3.1/web中的所有内容拷贝到项目webroot中,去掉WEB-INF目录下面lib目录中的roller-business.jar和roller-web.jar两个文件,将其他文件添加到build path中。
注意:
如果你是直接部署方式,碰到用户正确注册,但每次登陆都提示用户名密码错误(Wrong username and password combination),请修改security.xml,源代码段修改如下部分:
<bean id="jdbcAuthenticationDao" class="org.acegisecurity.userdetails.jdbc.JdbcDaoImpl">
<property name="dataSource">
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>net.sourceforge.jtds.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:jtds:sqlserver://127.0.0.1:1433;DatabaseName=roller31;User=sa;Password=</value>
</property>
<property name="username">
<value>sa</value>
</property>
<property name="password">
<value></value>
</property>
</bean>
</property>
<property name="usersByUsernameQuery">
<value>SELECT username,passphrase,isenabled FROM rolleruser WHERE username = ?</value>
</property>
<property name="authoritiesByUsernameQuery">
<value>SELECT username,rolename FROM userrole WHERE username = ?</value>
</property>
</bean>
将数据源添加上去,因为我发现3.1中的设定jdbc.XX只会对roller主程序有效,对acegi无效,但是如果你是通过配置tomcat来加载的就不需要,这种情况只会发生在直接部署上面。
如果你碰到了ResultSet can not re-read row data for column 1问题,请参考:
http://www.blogjava.net/TiGERTiAN/archive/2008/11/16/240794.html
至此,roller 3.1 的二次开发环境就搭好了。
后面我再研究下,如何使得最终发布文件没有class文件,只有roller-business.jar和roller-web.jar两个文件,跟原版一样。
---------------------------------------------------------
专注移动开发
Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
posted on 2008-11-03 00:42
TiGERTiAN 阅读(2000)
评论(5) 编辑 收藏 所属分类:
Java 、
Roller