1.下載roller 3.1的源代碼和
required jars(一定要下載,否則沒(méi)有辦法編譯和運(yùn)行)
required jars :
https://roller.dev.java.net/servlets/ProjectDocumentList?folderID=6962&expandFolder=6962&folderID=6959
2.然后在命令行中源代碼的目錄下面執(zhí)行build all命令。
如果你的JDK環(huán)境大于1.4了,雖然可以調(diào)整兼容等級(jí),但還是建議你使用JDK1.4,為了不改變你的原始JDK環(huán)境,可以在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
來(lái)臨時(shí)設(shè)置新jdk
3.build all過(guò)后,首先,他會(huì)生成所有的wrapper類等等,將生成的所有的類源文件(src下的)拷貝到roller源代碼根目錄src目錄中,webapp中的內(nèi)容拷貝到根目錄下web中,在compile目錄下的business\org\apache\roller\pojos\和business\org\apache\roller\planet\pojos\中有很多hbm.xml需要拷貝到源代碼同樣的目錄中,還有就是將classes下的所有文件拷貝到roller的src根目錄下。
其次,如果你需要覆蓋一些屬性,例如數(shù)據(jù)庫(kù)連接配置等等,需要在src下建立一個(gè)roller-custom.properties文件,放入一些你要覆蓋的配置項(xiàng),例如我要連接SQL Server數(shù)據(jù)庫(kù),則這樣配置
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=
當(dāng)然,不要忘了把相關(guān)jar包放進(jìn)去。
其他配置請(qǐng)參考Install Guide
4.下面是建立數(shù)據(jù)庫(kù),如果你使用的SQL Server,建議你將rollerdb腳本中的text類型字段,全部改為ntext,因?yàn)镾QL Server jdbc的驅(qū)動(dòng)對(duì)text的支持存在bug...會(huì)有問(wèn)題的。
如果你使用的tomcat 5.x,請(qǐng)去下載一個(gè)兼容包,用來(lái)兼容在JDK 1.4上的運(yùn)行,默認(rèn)配置下只可以在jdk 1.5上穩(wěn)定運(yùn)行。
5.建立一個(gè)Web Project,將roller3.1/src中所有文件拷貝到項(xiàng)目的src中,將roller3.1/web中的所有內(nèi)容拷貝到項(xiàng)目webroot中,去掉WEB-INF目錄下面lib目錄中的roller-business.jar和roller-web.jar兩個(gè)文件,將其他文件添加到build path中。
注意:
如果你是直接部署方式,碰到用戶正確注冊(cè),但每次登陸都提示用戶名密碼錯(cuò)誤(Wrong username and password combination),請(qǐng)修改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>
將數(shù)據(jù)源添加上去,因?yàn)槲野l(fā)現(xiàn)3.1中的設(shè)定jdbc.XX只會(huì)對(duì)roller主程序有效,對(duì)acegi無(wú)效,但是如果你是通過(guò)配置tomcat來(lái)加載的就不需要,這種情況只會(huì)發(fā)生在直接部署上面。
如果你碰到了ResultSet can not re-read row data for column 1問(wèn)題,請(qǐng)參考:
http://www.tkk7.com/TiGERTiAN/archive/2008/11/16/240794.html
至此,roller 3.1 的二次開(kāi)發(fā)環(huán)境就搭好了。
后面我再研究下,如何使得最終發(fā)布文件沒(méi)有class文件,只有roller-business.jar和roller-web.jar兩個(gè)文件,跟原版一樣。
---------------------------------------------------------
專注移動(dòng)開(kāi)發(fā)
Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
posted on 2008-11-03 00:42
TiGERTiAN 閱讀(2014)
評(píng)論(5) 編輯 收藏 所屬分類:
Java 、
Roller