项目构建
生成jboot.sh或者jboot.bat,依赖maven的appassembler插件,因此,你的maven配置文件pom.xml需要添加如下配置:
config pom.xml
进行maven构建
构建完毕后,会在target目录下生成一个app文件夹,在app文件的bin目录下会有一个jboot脚本(或者jboot.bat)。
启动应用
cd yourProjectPath/target/app/bin
./jboot
在启动的时候添加上自己的配置信息
cd yourProjectPath/target/app/bin
./jboot --jboot.server.port=8080 --jboot.rpc.type=local
使用你自己的配置文件来代替 jboot.properties
上面的命令启动后,会使用 jboot-dev.proerties
文件来替代 jboot.properties
同时设置 jboot.server.port=8080(服务器端口号为8080)
后台程序
在以上文档中,如果通过如下代码进行构建的。
mvn package appassembler:assemble
那么,如果构建一个后台运行的程序呢?步骤如下:
第一步:执行如下maven编译
mvn clean package appassembler:generate-daemons
maven命令执行完毕后,会在target下生成如下文件夹 /generated-resources/appassembler/jsw/jboot
, 文件中我们会找到bin目录,生成的后台脚本jboot(或jboot.bat)会存放在bin目录里。
第二步:启动应用
cd yourProjectPath/target/generated-resources/appassembler/jsw/jboot/bin
./jboot
此时,启动的应用为后台程序了。
首先,需要配置的自己的pom文件的packaging为war,并配置上maven编译插件:
这个过程和普通的java web工程没什么区别。
<filter>
<filter-name>jfinal</filter-name>
<filter-class>com.jfinal.core.JFinalFilter</filter-class>
<param-name>configClass</param-name>
<param-value>io.jboot.web.JbootAppConfig</param-value>
</init-param>
<filter-mapping>
<filter-name>jfinal</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这里注意:param-value一定使用io.jboot.web.JbootAppConfig,或者是其子类。
如果用到shiro,再配置上:
<filter>
<filter-name>shiro</filter-name>
<filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>shiro</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
</listener>
一般情况下,shiro的配置内容要放到jfinal的配置之上。
如果项目还用到hystrix,需要添加如下配置:
<servlet>
<servlet-class>com.netflix.hystrix.contrib.metrics.eventstream.HystrixMetricsStreamServlet</servlet-class>
<servlet-mapping>
<servlet-name>hystrix</servlet-name>
<url-pattern>/hystrix</url-pattern>
</servlet-mapping>
如果还用到Metrics,添加如下配置:
假设你的html文件都放在 resource下的htmls目录,配置内容如下:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<move file="${project.build.directory}/classes/htmls" tofile="${project.build.directory}/${project.build.finalName}/htmls"/>
</tasks>
</configuration>
</execution>
</plugin>