java runner_GitHub - rockybean/java-main-runner: java-main-runner

java-main-runner

平时写了一个Java程序,会希望把应用打包来运行,最好是提供一个脚本来运行。

这个工程做的事情:

配置了maven-assembly-plugin Maven插件,把工程里用到的依赖的Jar放到一起。

提供了运行脚本,启动、停止、重新加载lockback等命令。

打包

执行命令

mvn install assembly:single

在target目录下生成一个xxx-bin.tar.gz文件,下面目录的压缩文件。

├─bin # 运行脚本

│ env.sh

│ server.sh

├─conf # 配置文件,运行时会把这个conf目录加载到Class Path上

│ META-INF/logback/logback-development.xml

│ META-INF/logback/logback-test.xml

│ META-INF/logback/logback-production.xml

│ META-INF/main-class

│ logback.xml

└─lib # 相关的依赖

java-main-runner-1.0.0-SNAPSHOT.jar

jakarta.commons.lang-2.5.jar

log4j-1.2.17.jar

main.runner-0.0.1-SNAPSHOT.jar

slf4j-api-1.5.6.jar

slf4j-log4j12-1.5.6.jar

......

运行

解压xxx-bin.tar.gz文件,进入xxx-bin目录,执行server.sh脚本,脚本提供如下参数:

Usage: server.sh {start|status|stop|restart|logback}

start: start the xxx server

stop: stop the xxx server

restart: restart the xxx server

logback: reload logback config file

status: get xxx current status,running or stopped.

使用方法

新创建maven工程:

mvn archetype:generate -DgroupId=com.mycompany.helloworld -DartifactId=helloworld -Dpackage=com.mycompany.helloworld -Dversion=1.0-SNAPSHOT

添加java-main-runner依赖:

com.github.runner

java-main-runner

1.0.0-SNAPSHOT

添加maven plguin 插件:

org.apache.maven.plugins

maven-compiler-plugin

1.6

1.6

org.apache.maven.plugins

maven-surefire-plugin

false

-Dfile.encoding=UTF-8

org.codehaus.mojo

exec-maven-plugin

java

com.github.runner.ServerStartup

org.apache.maven.plugins

maven-jar-plugin

*.xml

org.apache.maven.plugins

maven-assembly-plugin

src/main/assembly/assembly.xml

项目分为三种profile,分别为:develipment、test、production,在pom.xml文件中添加配置:

development

windows

development

test

unix

test

production

production

在src/main 目录下添加文件,文件从java-main-runner-test中获取。

assembly/assembly.xml

scripts/env.sh

scripts/server.sh

以上配置信息,请具体参考java-main-runner-test工程配置。

创建AplicationServer类,继承com.github.runner.support.AbstractAplicationServer。

public class AplicationServer extends AbstractAplicationServer {

private static final Logger LOGGER = LoggerFactory.getLogger(AplicationServer.class);

@Override

public void stop() {

LOGGER.info("stop======");

}

@Override

public void start() {

LOGGER.info("start======");

}

}

在src/main/resources/META-INF/main-class文件添加AplicationServer类的全路径。

本地开发环境执行以下命令,启动应用程序:

mvn exec:java

java-web-runner-test

java-main-runner 添加tomcat嵌入运行功能,请参考java-web-runner-test实例,

注意assembly.xml中配置:com.github.web.demo:java-web-runner-test

等于当前工程:groupId:artifactId

注意

1:如果通过java代码调用./bin/server.sh start命令,需要把server.sh中start_server function最后三行代码替换为

exit 0;

2:META-INF/logback-*.xml文件中 logback-4001配置,4001与env.sh中JMX_PORT值是一致的,

这样可以保证统一机器中可以部署多个应用,只要保证应用之间端口是不一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值