欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

maven assembly打包生成Java應用啟動腳本bat和sh的方法

 更新時間:2022年11月21日 10:40:25   作者:靖節(jié)先生  
springboot應用通過maven插件appassembler-maven-plugi生成啟動腳本bat和sh,這篇文章主要介紹了maven assembly打包生成Java應用啟動腳本bat和sh,需要的朋友可以參考下

1. maven插件介紹

springboot應用通過maven插件appassembler-maven-plugi生成啟動腳本bat和sh。根據(jù)官網(wǎng)介紹,這個插件主要用于生成啟動 java應用程序的腳本,能將項目依賴jar能夠打包目錄中,并且它們加入啟動腳本類路徑中。

主要命令
appassembler:assemble 打包項目并且配置bin 啟動腳本,可以理解為使用類似spring-boot-maven-plugin打包出來項目,可以通過java -jar 方式啟動項目,但是不支持stop、satus、restart這些操作,比較原始。
appassembler:create-repository 創(chuàng)建一個 appassembler 存儲庫,就是將工程打成jar
appassembler:generate-daemons 生成基于 JSW 的守護進程包裝器,大多數(shù)人都是使用這個。

參考文檔
appassembler-maven-plugin 插件為 SpringBoot 項目生成啟動腳本
http://www.dbjr.com.cn/article/191442.htm

2. 生成啟動腳本

2.1 創(chuàng)建springboot應用

2.2 創(chuàng)建啟動測試類

MavenAssemblyDemoApplication

package com.zrj.maven.assembly.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * MavenAssemblyDemoApplication
 *
 * @author zrj
 * @since 20221117
 */
@RestController
@SpringBootApplication
public class MavenAssemblyDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(MavenAssemblyDemoApplication.class, args);
    }

    /**
     * Hello World!
     * If you open a web browser to localhost:8080, you should see the following output:
     *
     * @see 1 https://docs.spring.io/spring-boot/docs/2.7.5/reference/htmlsingle/
     */
    @RequestMapping("/")
    String home() {
        long currentTime = System.currentTimeMillis();
        String helloTime = currentTime + ":Hello World!";
        System.out.println(helloTime);
        return helloTime;
    }
}

2.3 maven依賴配置

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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <groupId>com.zrj</groupId>
    <artifactId>maven-assembly-demo</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <name>maven-assembly-demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <!-- appassembler-maven-plugin插件自動生成java項目啟動腳本sh或者bat-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>appassembler-maven-plugin</artifactId>
                <version>2.1.0</version>

                <!-- 如果不配置 generate-daemons,則打包命令為 mvn clean package appassembler:assemble -->
                <!-- 如果配置了 generate-daemons,打包命令可以是 mvn clean package 也可以是 mvn clean package appassembler:assemble -->
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <phase>package</phase>
                        <goals>
                            <goal>assemble</goal>
                        </goals>
                    </execution>
                </executions>

                <configuration>
                    <!-- flat與lib共同決定將項目用的的所有jar包復制到lib目錄下 -->
                    <repositoryLayout>flat</repositoryLayout>
                    <!--從哪里copy配置文件-->
                    <configurationSourceDirectory>src/main/resources</configurationSourceDirectory>
                    <includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
                    <!--是否copy配置文件-->
                    <copyConfigurationDirectory>true</copyConfigurationDirectory>
                    <!--生成的項目的目錄位置,這里的client是項目的名稱,你可以根據(jù)你的需要自己隨便命名-->
                    <assembleDirectory>${project.build.directory}/client</assembleDirectory>
                    <!--配置文件存放在conf目錄路徑-->
                    <configurationDirectory>conf</configurationDirectory>
                    <!-- 打包的jar,以及maven依賴的jar放到這個目錄里面 -->
                    <repositoryName>lib</repositoryName>
                    <!-- 可執(zhí)行腳本的目錄 -->
                    <binFolder>bin</binFolder>

                    <!-- 生成linux, windows兩種平臺的執(zhí)行腳本 -->
                    <platforms>
                        <platform>windows</platform>
                        <platform>unix</platform>
                    </platforms>

                    <!-- 針對不同平臺生成不同類型的啟動腳本 -->
                    <binFileExtensions>
                        <unix>.sh</unix>
                        <windows>.bat</windows>
                    </binFileExtensions>

                    <!--編碼,日志-->
                    <encoding>UTF-8</encoding>
                    <logsDirectory>logs</logsDirectory>
                    <tempDirectory>tmp</tempDirectory>

                    <!--java啟動參數(shù)-->
                    <extraJvmArguments>-Xms128m</extraJvmArguments>

                    <programs>
                        <program>
                            <!--指定主類,腳本名。會生成shell/bat兩種類型,也可用platforms指定運行平臺-->
                            <mainClass>com.zrj.maven.assembly.demo.MavenAssemblyDemoApplication</mainClass>
                            <!-- 生成的腳本文件的名稱,比如start.sh,你也可以根據(jù)你的需要命名成其他名字 -->
                            <name>start</name>
                        </program>
                    </programs>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

3. 測試驗證

3.1 執(zhí)行命令

執(zhí)行命令或者使用idea
執(zhí)行命令:maven install
idea:maven-lifecycle依次執(zhí)行clean,install

3.2 生成腳本

|—— target
|   |—— client
|   |   |—— bin
|   |   |   |—— start.sh              # linux平臺下的啟動腳本
|   |   |   |—— start.bat            # windows平臺下的啟動腳本
|   |—— conf
|   |   |—— application.properties    # 項目配置文件
|   |—— lib
|   |   |—— 各種依賴jar包
|   |—— logs
|   |—— tmp

3.3 啟動腳本驗證

./start.bat 或者./start.sh

瀏覽器訪問:http://localhost:8080/
刷新頁面:1668682483758:Hello World!

到此這篇關于maven assembly打包生成Java應用啟動腳本bat和sh的文章就介紹到這了,更多相關maven assembly打包生成啟動腳本bat和sh內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java8新特性Stream流實例詳解

    Java8新特性Stream流實例詳解

    Stream流是數(shù)據(jù)渠道,用于操作數(shù)據(jù)源(集合、數(shù)組等)所生成的元素序列。這篇文章主要介紹了Java8新特性Stream流的相關資料,需要的朋友參考下吧
    2017-10-10
  • Java編程Socket實現(xiàn)多個客戶端連接同一個服務端代碼

    Java編程Socket實現(xiàn)多個客戶端連接同一個服務端代碼

    這篇文章主要介紹了Java編程Socket實現(xiàn)多個客戶端連接同一個服務端代碼,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Java中使用輾轉(zhuǎn)相除法求最大公約數(shù)

    Java中使用輾轉(zhuǎn)相除法求最大公約數(shù)

    這篇文章主要介紹了Java中使用輾轉(zhuǎn)相除法求最大公約數(shù),本文直接給出代碼實例,需要的朋友可以參考下
    2015-05-05
  • java持久層框架mybatis防止sql注入的方法

    java持久層框架mybatis防止sql注入的方法

    下面小編就為大家?guī)硪黄猨ava持久層框架mybatis防止sql注入的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • Java集合中的LinkedHashMap使用解析

    Java集合中的LinkedHashMap使用解析

    這篇文章主要介紹了Java集合中的LinkedHashMap使用解析,LinkedHashMap是繼承于HashMap的,所以它的很多屬性和方法都是HashMap中的,那么它是怎么實現(xiàn)有序存儲的呢,需要的朋友可以參考下
    2023-12-12
  • java 正則表達式獲取兩個字符中間的字符串方法

    java 正則表達式獲取兩個字符中間的字符串方法

    今天小編就為大家分享一篇java 正則表達式獲取兩個字符中間的字符串方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • java實現(xiàn)批量導入.csv文件到mysql數(shù)據(jù)庫

    java實現(xiàn)批量導入.csv文件到mysql數(shù)據(jù)庫

    這篇文章主要為大家詳細介紹了java實現(xiàn)批量導入.csv文件到mysql數(shù)據(jù)庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • 淺談java中String StringBuffer StringBuilder的區(qū)別

    淺談java中String StringBuffer StringBuilder的區(qū)別

    下面小編就為大家?guī)硪黄獪\談java中String StringBuffer StringBuilder的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • springboot程序啟動慢-未配置hostname的解決

    springboot程序啟動慢-未配置hostname的解決

    這篇文章主要介紹了springboot程序啟動慢-未配置hostname的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java內(nèi)部類原理與用法實例總結(jié)

    Java內(nèi)部類原理與用法實例總結(jié)

    這篇文章主要介紹了Java內(nèi)部類原理與用法,結(jié)合實例形式總結(jié)分析了非靜態(tài)內(nèi)部類、靜態(tài)內(nèi)部類、局部類等相關概念、原理、用法及相關操作注意事項,需要的朋友可以參考下
    2018-08-08

最新評論