spring boot 打包成二進位制可以直接執行的jar , 非java -jar 啟動方式
阿新 • • 發佈:2018-12-11
spring 打包成jar後可以直接使用java -jar xxx.jar 直接啟動.但是還想進一步簡化,直接用./xxx.jar 可以註冊成系統命令的方式改如何配置呢,其實很簡單.
pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.cloud</groupId> <artifactId>cloud-monitor</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.16.RELEASE</version> </parent> <properties> <java-version>1.8</java-version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <skipTests>true</skipTests> <start-class>com.monitor.MonitorApp</start-class> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.7</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.11</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>1.1.11</version> </dependency> <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.8.1</version> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>21.0</version> </dependency> <dependency> <groupId>commons-dbutils</groupId> <artifactId>commons-dbutils</artifactId> <version>1.6</version> </dependency> <!--apache 命令列引數解析--> <dependency> <groupId>commons-cli</groupId> <artifactId>commons-cli</artifactId> <version>1.4</version> </dependency> <!--jcommander 更優雅些引數解析--> <dependency> <groupId>com.beust</groupId> <artifactId>jcommander</artifactId> <version>1.72</version> </dependency> <!--airline presto 使用的命令列引數解析--> <dependency> <groupId>io.airlift</groupId> <artifactId>airline</artifactId> <version>0.8</version> </dependency> <dependency> <groupId>io.airlift</groupId> <artifactId>concurrent</artifactId> <version>0.173</version> </dependency> <dependency> <groupId>io.airlift</groupId> <artifactId>units</artifactId> <version>1.3</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-exec</artifactId> <version>1.3</version> </dependency> <dependency> <groupId>org.zeroturnaround</groupId> <artifactId>zt-exec</artifactId> <version>1.10</version> </dependency> <dependency> <groupId>org.zeroturnaround</groupId> <artifactId>zt-process-killer</artifactId> <version>1.8</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> </dependencies> <repositories> <repository> <id>aliyun</id> <name>aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </repository> </repositories> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.skife.maven</groupId> <artifactId>really-executable-jar-maven-plugin</artifactId> <configuration> <flags>-Xmx1G</flags> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>really-executable-jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
主要是 really-executable-jar-maven-plugin 這個外掛.
如何使用
方法一: ./cloud-monitor-1.0-SNAPSHOT.jar 或 (linux 下) sh cloud-monitor-1.0-SNAPSHOT.jar
方法二: 1. mv cloud-monitor-1.0-SNAPSHOT.jar monitor
2. 把 monitor 配置到使用者的環境變數中去 可直接使用 monitor 就可以啟動