快速開始、環境搭建、修改包名、新建模塊、正式部署
開發環境要求
1、Java SDK 1.8 下載
2、Apache Maven 3.6 下載
3、Eclipse IDE for Java EE (4.5) 下載、或 IntelliJ IDEA 下載
4、MySql 5.7.11+ 下載(Oracle、PostgreSQL、Sql Server 操作類似)
導入到 Eclipse 或 IDEA
1、檢出 JeeSite 4.x 源代碼:
git clone https://gitee.com/thinkgem/jeesite4.git
2、拷貝 web
文件夾,到你的工作目錄(不包含中文和空格的目錄)下,重命名爲你的工程名,如:jeesite-test
3、打開 pom.xml
文件,找到 jeesite-web
的 artifactId 元素,修改爲你的工程名,如:jeesite-test
4、導入到 Eclipse,菜單 File -> Import,然後選擇 Maven -> Existing Maven Projects,點擊 Next> 按鈕,選擇第2步的 jeesite-test
文件夾,然後點擊 Finish 按鈕,即可成功導入
5、若 IDEA,點擊 Import Project,選擇 pom.xml
文件(若包含所有源碼包,你需要選擇 jeesite/root/pom.xml
文件),點擊 Next 按鈕,選擇 Import Maven projects automatically
複選框,然後一直點擊 Next 按鈕,直到點擊 Finish 按鈕,即可成功導入
6、這時,Eclipse(IDEA)會自動加載 Maven 依賴包,初次加載會比較慢(根據自身網絡情況而定,目前使用國外Maven倉庫地址,購買授權提供國內私服地址),若工程上有小叉號,請打開 Problems 窗口,查看具體錯誤內容,直到無錯誤爲止
7、下載依賴jar文件的過程中,你可以準備數據庫環境了
若在部署過程中遇見問題,請在“常見問題”中找找,看看有沒有和你相同的問題
初始化數據庫
1、以 MySql 爲例
1)打開 my.ini 給 [mysqld] 增加如下配置:
sql_mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
2)如果遇到 ERROR 1709 (HY000): Index column size too large. The maximum column size is 767 bytes. 錯誤
a)打開 my.ini 給 [mysqld] 增加如下配置:
innodb_large_prefix = ON
innodb_file_format = Barracuda
innodb_file_per_table = ON
b)並修改報錯的建表語句後面加上:ENGINE=InnoDB row_format=DYNAMIC;
# 若沒有修改my.ini的權限也可以使用命令查看參數和設置參數:
show global variables like "innodb_large_prefix";
show global variables like "innodb_file_format";
show global variables like "innodb_file_per_table";
set global innodb_large_prefix=ON;
set global innodb_file_format=Barracuda;
set global innodb_file_per_table=ON;
2、 創建用戶和授權
set global read_only=0;
set global optimizer_switch='derived_merge=off';
create user 'jeesite'@'%' identified by 'jeesite';
create database jeesite DEFAULT CHARSET 'utf8' COLLATE 'utf8_unicode_ci';
grant all privileges on jeesite.* to 'jeesite'@'%' identified by 'jeesite';
flush privileges;
3、 打開文件 /src/main/resources/config/application.yml
(v4.0.x:/src/main/resources/config/jeesite.yml
) 配置產品和項目名稱及 JDBC 連接
# 產品或項目名稱、軟件開發公司名稱
productName: JeeSite Demo
companyName: ThinkGem
# 產品版本、版權年份
productVersion: V4.1
copyrightYear: 2018
# 數據庫連接
jdbc:
# Mysql 數據庫配置
type: mysql
driver: com.mysql.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/jeesite?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
username: jeesite
password: jeesite
testSql: SELECT 1
4、若剛纔導入到的 Eclipse(IDEA) 的項目已經完成加載 jar 並無錯誤,這時你就可以執行/bin/init-data.bat(.sh)
腳本初始化數據庫了,第一次執行如果遇見table xxx doesn't exist
的錯誤信息,忽略即可。
5、若在初始化每一行語句的都報事務相關的錯,請檢查設置jdbc.jta.enabled=false
是否關閉後,再嘗試導入。
6、如果/bin/init-data.bat(.sh)
無法運行,你可以在 Eclipse 裏找到com.jeesite.test.InitData.java
(v4.1.8之前版本:com.jeesite.test.InitCoreData.java
)文件並打開,然後在空白處右鍵,點擊 Run As -> JUnit Test 運行單元測試,進行初始化數據庫腳本。爲了防止誤操作,你還需要:打開 Run Configurations 找到 Arguments 選項卡,在 VM arguments 裏增加 “-Djeesite.initdata=true” 參數,點擊Run運行,執行完成後建議將該單元測試 Run Configuration 刪除掉,防止誤操作,不小心再把你的有用數據清理掉(IDEA 雷同)。
啓動Tomcat服務
1、當前是 Spring Boot 工程,內部已經集成 Web 容器,你無需另外再下載 Tomcat 進行部署,只需按照以下方式進行即可。
2、打開/src/main/resources/config/application.yml
文件,配置你的服務端口port
、部署路徑context-path
,例如:
server:
port: 8980
servlet:
context-path: /jeesite-test
tomcat:
uri-encoding: UTF-8
v4.0.x:
server:
port: 8980
context-path: /jeesite-test
tomcat:
uri-encoding: UTF-8
3、在 Eclipse 裏找到com.jeesite.modules.Application.java
(v4.0.x:com.jeesite.modules.config.Application.java
)文件並打開,然後在空白處右鍵,點擊 Debug As -> Java Application 即可啓動服務。
4、若 IDEA,找到右上角 Application 運行配置,點擊 Debug Application 圖標。若啓動的時候提示NoClassDefFoundError: javax/servlet/ServletOutputStream
錯誤,你只需要修改 web 項目下的 pom.xml,註釋掉spring-boot-starter-tomcat
的<scope>provided</scope>
即可。
5、注意使用 Debug 運行,有助於你調試程序和提升開發效率,如:修改方法內的代碼,修改視圖代碼,修改mapper代碼,是不需要重啓Web服務的。如果改變java類的結構,如果增刪屬性、方法、參數等,新增文件,這是就需要重啓服務。
部署完成測試
1、瀏覽器訪問:http://127.0.0.1:8980/jeesite-test
2、默認最高管理員賬號:system 密碼:admin
3、這時已經配置完成,開啓你的開發之旅吧
清理 Demo 數據
爲了演示方法,初始化數據庫後會載入一些演示數據,執行以下腳本即可清理
DELETE FROM js_sys_post;
DELETE FROM js_sys_office;
DELETE FROM js_sys_company;
DELETE FROM js_sys_employee;
DELETE FROM js_sys_employee_post;
DELETE FROM js_sys_role WHERE role_code NOT IN ('corpAdmin','default');
DELETE FROM js_sys_role_data_scope;
DELETE FROM js_sys_user WHERE user_code NOT IN ('system','admin');
DELETE FROM js_sys_user_data_scope;
DELETE FROM js_sys_user_role;
DELETE FROM js_sys_log;
新建一個模塊項目
1、舉例創建 jeesite-module-test
模塊功能,拷貝模塊目錄下的 /modules/template
模板項目文件夾
2、然後在相同文件夾 /modules/
下粘貼,並重命名爲你的模塊名,如:/modules/test
3、打開 /modules/test/pom.xml
文件,找到 jeesite-module-template
的 artifactId 元素,修改爲你的模塊名,如:jeesite-module-test
4、打開 /root/pom.xml
文件,拷貝 <module>../modules/core</module>
到新一行,修改爲你的模塊名,如:<module>../modules/test</module>
5、在你需要用到的項目引入你的新模塊,如,在 web 項目下用,則打開 /web/pom.xml
文件,加入:
<dependency>
<groupId>com.jeesite</groupId>
<artifactId>jeesite-module-test</artifactId>
<version>${project.parent.version}</version>
</dependency>
6、若你使用的 Eclipse ,將該模塊導入即可。若 IDEA 會自動檢測 root 模塊的依賴,並自動導入。
7、啓動項目,打開 “系統管理 -> 系統設置 -> 模塊管理” 菜單,新建一個模塊,數據如下:
- 模塊名稱:測試模塊
- 模塊編碼:test
- 主類全名:com.jeesite.modules.sys.web.LoginController (模塊下新增代碼後,修改爲模塊關鍵類的類名)
注意:主類全名是指:該模塊的狀態驗證類,如果該類檢測不存在,則該模塊狀態提示 “未安裝” ,驗證原理:Class.forName(“com.jeesite.modules.sys.web.LoginController”)
7、模塊創建完成
數據庫腳本自動升級
每個主要模塊下都有一個 versions
文件,該文件爲數據庫版本檢測的關鍵文件。 例如 core 模塊的版本檢測文件爲:/modules/core/src/main/resources/db/upgrade/core/versions
。 系統啓動時,遍歷模塊表裏的所有模塊,檢測 versions
文件的版本列表,與其當前模塊版本進行對應。 找到對應版本,則依次往下進行匹配執行升級。若匹配的版本沒有 sql 腳本,則忽略,只更新模塊版本。 若 versions
文件的版本列表中沒有匹配的版本,則提示:升級失敗,數據庫的版本可能比代碼版本新。
使用自己的包路徑
1、Application.java
的 @SpringBootApplication(scanBasePackages="包路徑")
增加你的包路徑
2、application.yml
中找到 mybatis: scanBasePackage:
增加你的包路徑,用逗號隔開
3、默認代碼生成包路徑修改:菜單系統設置->參數設置
的gen.defaultPackageName
爲你的包名
4、打開 logback-spring.xml
,配置日誌級別 <logger name="包路徑" level="DEBUG" />
5、修改完成
部署到正式服務器
1、確保正式服務器jdk1.8
及數據庫
環境已經具備
2、配置系統環境變量JAVA_HOME
指定jdk1.8
路徑,注意不要包含空格
3、執行bin/package.bat(.sh)
進行打成war
包文件,並將此war拷貝到服務器上
4、進行解壓war
包,配置yml
相關參數,運行/WEB-INF/startup.bat(.sh)
腳本
5、若需修改jvm
參數,編輯startup.bat(.sh)
修改JAVA_OPTS
參數優化jvm
環境
6、支持啓動參數增加-Dspring.config.location=x:/app.yml
加載指定配置文件
7、若需要配置環境,則指定-Dspring.profiles.active=dev
,則加載application-dev.yml
屬性文件