= 快速体验
以下所有操作均在 Mac OS 环境中进行，如果是其他操作系统，可进行相应的适应即可。

== 准备工作空间目录
为了便于操作,假设以下所有操作都在 /Users/wangshaoping/Documents/workspace 工作空间目录中进行，如果目录不存在,请自行创建。

== 创建项目目录
[source,bash]
----
# 进入工作空间
cd /Users/wangshaoping/Documents/workspace

# 创建名为 application 的项目目录，该目录为我们将要构建的项目的根目录
mkdir application
----

== 下载插件到项目目录中
为了快速方便搭建项目,框架提供一个插件,插件下载地址: link:resources/files/getting-started/io.sc.platform.gradle-8.1.0.jar[io.sc.platform.gradle-8.1.0.jar]

完成后,当前项目结构如下:
[source,bash]
----
/Users/wangshaoping/Documents/workspace     <1>
\--- application                            <2>
     \--- io.sc.platform.gradle-8.1.0.jar   <3>
----
<1> 工作空间
<2> 项目根目录
<3> io.sc.platform.gradle-8.1.0.jar 插件文件

== 构建项目摘要汇总
通过以下命令完成项目的创建，构建，运行。详细步骤可参考后续章节。

[source,bash]
----
cd /Users/wangshaoping/Documents/workspace/application
java -jar io.sc.platform.gradle-8.1.0.jar
./gradlew setup --refresh-dependencies
./gradlew createApp --name=app.sample
./gradlew bootwar
cd app.sample/build/libs
java -jar app.sample-1.0.0.war
----

[#getting-started-init]
== 初始化项目
[source,bash]
----
# 进入项目目录,如果当前正在此目录下，无需执行以下命令
cd /Users/wangshaoping/Documents/workspace/application

# 安装并初始化项目
java -jar io.sc.platform.gradle-8.1.0.jar  <1>

                       欢迎使用应用平台构建工具!

本工具可用于初始化项目,初始化完成后可以通过 gradle 命令完成项目的构建和开发.


您是否要继续?(y/n): <2>

Maven 仓库地址,默认: http://nexus.sc.io:8000/repository/maven-public/
请输入 maven 仓库 URL: <3>

初始化项目......100%

您可以使用以下命令查看使用帮助:
./gradlew use

io.sc.platform.gradle-x.x.x.jar 文件不是项目构建的必要文件,可以安全删除.
您是否要删除 io.sc.platform.gradle-x.x.x.jar 文件?(y/n): <4>
----
<1> 执行插件,安装并初始化项目
<2> 询问是否继续? 默认 y, 直接回车将采用默认值
<3> 设置 Maven 仓库地址, 默认 http://nexus.sc.io:8000/repository/maven-public/, 直接回车将采用默认值
<4> 安装并初始化完毕,是否删除插件? 默认 y, 直接回车将采用默认值

成功后，项目目录结构如下:

[source,bash]
----
/Users/wangshaoping/Documents/workspace
\--- application
     |--- .gitignore                  	    <1>
     |--- build.gradle                  	<2>
     |--- CHANGELOG                  		<3>
     |--- gradle                            <4>
     |    \--- wrapper
     |         |--- gradle-wrapper.jar
     |         \--- gradle-wrapper.properties
     |--- gradle.properties                 <5>
     |--- gradlew                           <6>
     |--- gradlew.bat                       <7>
     \--- settings.gradle                   <8>
----
<1> Git 版本管理忽略配置文件,在该文件中可以配置项目的哪些文件无需进行源代码管理,即这些文件将不会进入的 Git 仓库
<2> gradle 构建文件
<3> 变更日志，用于记录项目的修改日志，方便记录项目的变更过程
<4> gradle 运行环境
<5> gradle 配置文件
<6> gradlew 类 linux 环境下的 gradle 执行命令
<7> gradlew.bat window 环境下的 gradle 执行命令
<8> gradle 工程组织文件，用于配置整个项目包含的所有子项目

== 安装项目
[source,bash]
----
# 进入项目目录,如果当前正在此目录下，无需执行以下命令
cd /Users/wangshaoping/Documents/workspace/application

# 创建入口应用(子项目)
# 如果是 window 环境,执行:  gradlew.bat setup --refresh-dependencies
./gradlew setup --refresh-dependencies
----
成功后，项目目录结构如下:

[source,bash]
----
/Users/wangshaoping/Documents/workspace
\--- application
     |--- .gitignore
     |--- .gradle
     |--- build-version.gradle                  <1>
     |--- build.gradle                          <2>
     |--- CHANGELOG
     |--- gradle
     |    \--- wrapper
     |         |--- gradle-wrapper.jar
     |         \--- gradle-wrapper.properties
     |--- gradle.properties
     |--- gradlew
     |--- gradlew.bat
     |--- README.adoc                           <3>
     \--- settings.gradle
----

== 创建入口应用
[source,bash]
----
# 进入项目目录,如果当前正在此目录下，无需执行以下命令
cd /Users/wangshaoping/Documents/workspace/application

# 创建入口应用(子项目)
# 如果是 window 环境,执行:  gradlew.bat createApp --name=app.org.wsp.sample
./gradlew createApp --name=app.sample
----

TIP: 如果执行命令是出现权限问题,可通过 chmod a+x gradlew 赋予执行权限

成功后，项目目录结构如下:

[source,bash]
----
/Users/wangshaoping/Documents/workspace
\--- application
     |--- app.sample                    <1>
     |--- .gitignore
     |--- build-version.gradle
     |--- build.gradle
     |--- CHANGELOG
     |--- gradle
     |    \--- wrapper
     |         |--- gradle-wrapper.jar
     |         \--- gradle-wrapper.properties
     |--- gradle.properties
     |--- gradlew
     |--- gradlew.bat
     |--- README.adoc
     \--- settings.gradle
----
<1> 新创建的入口应用(子项目)目录

== 构建应用
[source,bash]
----
# 进入项目目录,如果当前正在此目录下，无需执行以下命令
cd /Users/wangshaoping/Documents/workspace/application

# 构建应用
./gradlew bootwar
----

成功后，项目目录结构如下:

[source,bash]
----
/Users/wangshaoping/Documents/workspace
\--- application
     |--- app.sample
     |    \--- build
     |         \--- libs
     |              \--- app.sample-1.0.0.war <1>
     |--- .gitignore
     |--- build-version.gradle
     |--- build.gradle
     |--- CHANGELOG
     |--- gradle
     |    \--- wrapper
     |         |--- gradle-wrapper.jar
     |         \--- gradle-wrapper.properties
     |--- gradle.properties
     |--- gradlew
     |--- gradlew.bat
     |--- README.adoc
     \--- settings.gradle
----
<1> 构建成功的 war 包

== 启动应用
[source,bash]
----
# 进入构建成功的 war 包所在的目录,如果当前正在此目录下，无需执行以下命令
cd /Users/wangshaoping/Documents/workspace/application/app.sample/build/libs

# 启动应用
# mac 或 linux 执行以下命令
java -jar app.sample-1.0.0.war

# windows 执行以下命令
java -jar app.sample-1.0.0.war

# 请等待一定时间，让应用启动完毕。
# 应用默认会在 8080 端口提供服务,如果启动过程中出现端口冲突错误，请按 ctrl+c 组合键停止应用，
# 打开 /Users/wangshaoping/Documents/workspace/application/app.sample/build/libs/config/application.properties 文件，
# 修改 server.port=8080 配置项,将 8080 端口修改为其他未被占用的端口号
# 再次回到 /Users/wangshaoping/Documents/workspace/application/app.sample/build/libs 目录，重新启动应用。
----

== 开始使用系统
打开浏览器，访问 http://localhost:8080 (如果端口号被修改过，请将 8080 替换为修改后的端口号,以下示例采用 8088 端口), 由于系统是首次运行,需要进行必要的初始化操作,系统会自动进入安装界面。

TIP: 注意: 访问地址中只包含主机及端口,没有应用上下文路径

image::getting-started/windows/install-001.png[,50%]

点击 “执行快速安装” 按钮，进行安装。

TIP: 提示: 为了快速体验,此处采用“执行快速安装”,无需任何数据库(采用 H2 的基于磁盘文件的数据库)。
如果是在开发或者生产环境安装,请选择“执行定制安装”。

image::getting-started/windows/install-002.png[,50%]

image::getting-started/windows/install-003.png[,50%]

安装完毕后，点击 “开始使用系统” 按钮，进入登录页面。

image::getting-started/windows/install-004.png[,50%]

默认管理员用户名/密码: admin/admin, 登录成功后进入主页面。

image::getting-started/windows/install-005.png[,50%]

= 搭建开发环境
== eclipse
=== 生成 eclipse 项目
[source,bash]
----
# 进入项目目录
cd /Users/wangshaoping/Documents/workspace/application

# 生成 eclipse 工程
./gradlew eclipse
----

=== 将所有工程导入到 eclipse 中
通过 Eclipse 导入。

=== 在 eclipse 运行
image::getting-started/windows/eclipse-001.png[,50%]

== idea ce
=== 生成 idea 项目
[source,bash]
----
# 进入项目目录
cd /Users/wangshaoping/Documents/workspace/application

# 生成 eclipse 工程
./gradlew idea
----

=== 将所有工程导入到 idea 中
通过 Idea 打开 /Users/wangshaoping/Documents/workspace/application 目录。

=== 在 idea 运行
同在 eclipse 环境中一样,执行启动类即可.

== 将项目的源代码放入 Git 仓库
请参考 GitLab 的使用说明，此处不再赘述。

== 应用程序本地目录及文件说明
当应用程序启动成功后，系统会创建默认或者指定的应用程序 home 目录，并将系统的一些配置及其他资源通过一些列目录进行组织，其目录结构如下:

[source,bash]
----
/Users/wangshaoping/Documents/workspace/application/app.sample/build/libs
|--- config		<1>
|    |--- application.properties		<4>
|    |--- banner.txt					<5>
|    |--- dynamic-beans
|    |    \--- groovy
|    |--- dynamic-spring-beans
|    |--- .installed					<6>
|    |--- logback-spring.xml			<7>
|    \--- script
|         \--- groovy
|--- logs		<2>
|    \--- log.log						<8>
\--- work		<3>
     |--- db
     |    \--- h2						<9>
     \--- web
          |--- anonymous-download		<10>
          |--- download				<11>
          |--- export					<12>
          \--- upload					<13>
----
<1>  应用配置文件目录
<2>  系统运行时日志文件目录
<3>  系统工作目录
<4>  主配置文件
<5>  启动时显示的品牌文字
<6>  安装文件，通过是否存在该文件来判断系统是否成功安装
<7>  日志配置文件
<8>  日志文件
<9>  磁盘数据库 H2 文件所在目录
<10> 匿名下载文件，用于非认证用户下载
<11> 普通用户下载目录
<12> 数据导出文件目录
<13> 用户上传目录