https://github.com/oldratlee/main-runner
wrap java maven project by command line start script
https://github.com/oldratlee/main-runner
Last synced: 2 months ago
JSON representation
wrap java maven project by command line start script
- Host: GitHub
- URL: https://github.com/oldratlee/main-runner
- Owner: oldratlee
- Created: 2013-05-29T06:52:00.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2022-01-04T16:35:45.000Z (over 3 years ago)
- Last Synced: 2025-04-10T00:15:43.664Z (2 months ago)
- Language: Shell
- Homepage: https://github.com/oldratlee/main-runner
- Size: 16.6 KB
- Stars: 8
- Watchers: 2
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Main Runner
========================平时写了一个Java程序,会希望把应用打包来运行,最好是提供一个脚本来运行。
这个工程做的事情:
- 配置了maven-assembly-plugin Maven插件,把工程里用到的依赖的Jar放到一起。
- 提供了运行脚本。打包
-------------------在执行mvn install时,
```bash
mvn install -P Profile-AllInOne
```\# `-P Profile-AllInOne`选项开启打包操作。 关于Maven Profile参见:[Details on profile activation](http://maven.apache.org/guides/introduction/introduction-to-profiles.html)
会在`target`目录下生成`all-in-all.dir`目录,形如
```bash
├─bin # 运行脚本
│ env.sh
│ run.sh
│
├─conf # 配置文件,运行时会把这个conf目录加载到Class Path上
│ foo.properties
│
└─lib # 相关的依赖
jakarta.commons.io-2.0.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
......
```另外还会在`target`目录下生成一个`all-in-all.tar.gz`文件,是上面目录的压缩文件。
运行
----------------------使用`target/all-in-all.dir/bin`目录下的`run.sh`脚本来运行,这个脚本的第一个参数是要运行的类,后面参数是Java的运行参数。
```bash
./run.sh com.oldratlee.runner.Main arg1 arg2
```输出如下:
```bash
$ ./run.sh com.oldratlee.runner.Main arg1 arg2
===================================
Start run command:
D:\ProgFile\Java\jdk1.6.0_31/bin/java -cp E:\main-runner\target\all-in-one.dir\conf;E:\main-runner\target\all-in-one.dir\lib\hamcrest-core-1.3.jar;E:\main-runner\target\all-in-one.dir\lib\jakarta.commons.io-2.0.jar;E:\main-runner\target\all-in-one.dir\lib\jakarta.commons.lang-2.5.jar;E:\main-runner\target\all-in-one.dir\lib\junit-4.11.jar;E:\main-runner\target\all-in-one.dir\lib\log4j-1.2.17.jar;E:\main-runner\target\all-in-one.dir\lib\main.runner-0.0.1-SNAPSHOT.jar;E:\main-runner\target\all-in-one.dir\lib\slf4j-api-1.5.6.jar;E:\main-runner\target\all-in-one.dir\lib\slf4j-log4j12-1.5.6.jar; com.oldratlee.runner.Main arg1 arg2
===================================
2013-05-29 16:19:15,164 INFO [com.oldratlee.runner.Main] [main] (Main.java:13) - Hello World!
com.oldratlee.runner.Main run!
argument 0: arg1
argument 1: arg2
2013-05-29 16:19:15,167 INFO [com.oldratlee.runner.Main] [main] (Main.java:21) - Bye!
```如何在你的工程加上打包的功能
----------------------------------1. 在POM中加上:
```xml
org.apache.maven.plugins
maven-assembly-plugin
assemble
single
package
all-in-one
false
false
Profile-AllInOne
maven-assembly-plugin
${basedir}/dev.xml
Profile-AllInOne-NoDir
maven-assembly-plugin
${basedir}/release.xml
```
2. 添加文件`dev.xml`、release.xml`到工程目录
这2个文件到本工程提取即可。
3. 添加启动脚本目录`bin`到工程目录
这个目录到本工程提取即可。
4. 添加配置文件目录`conf`到工程目录
下面文件可以是你需要的配置文件。