可执行jar包的配置与运行

spring boot项目可以以jar包的形式执行运行。spring boot技术目前很火,因此了解可运行jar包的制作和执行过程很重要。

1、项目结构如下


2、我们以config模块为例子,其gradle文件配置如下

group 'spring-cloud-in-action'
version '1.0-SNAPSHOT'

apply plugin: 'java'

sourceCompatibility = 1.8

/**
 * 自定义变量
 */
ext.vendor = 'IWill'
ext.email = 'yangjianzhouctgu@126.com'

/**
 * 定义源文件所在目录和输出目录
 */
sourceSets {
    main {
        java{
            srcDir 'src/main/java'
        }
        resources {
            srcDir 'src/main/resources'
        }
        output.classesDir = "build/classes/main/"
        output.resourcesDir = "build/classes/main/"
    }
}

/**
 * 定义第三方jar包库
 */
repositories {
    mavenCentral()
}

/**
 * 添加第三方库依赖
 */
dependencies {
    compile("org.springframework.cloud:spring-cloud-starter:1.0.3.RELEASE")
    compile("org.springframework.cloud:spring-cloud-config-server:1.0.2.RELEASE")
    compile("org.springframework.cloud:spring-cloud-starter-eureka:1.0.3.RELEASE")
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

/**
 * 将jar复制到指定目录
 */
task copyJars(type: Copy) {
    from configurations.runtime
    into 'build/libs/lib'
}

/**
 * 将资源文件复制到指定目录
 */
task copyConfigs(type: Copy) {
    from 'resources/'
    into 'build/libs/resources'
}

task generateJar(type: Jar, dependsOn: [copyJars, copyConfigs, jar]) {

    /**
     * 指定MANIFEST.MF相关属性
     */
    manifest {
        attributes ('Implementation-Title': 'Gradle',
                'Implementation-Version': version,
                'Created-By': vendor,
                'Email': email,
                'Main-Class': 'com.springCloud.config.ConfigApplication',
                'Class-Path': configurations.compile.collect {'lib/' + it.getName()}.join(' ')
        )
    }

    /**
     * 将build/classes/main中的文件复制到jar包的根目录下
     */
    into('') {
        from "build/classes/main"
    }

    /**
     * 将build/libs/lib中的文件复制到jar包的libs目录下
     */
    into('libs') {
        from "build/libs/lib"
    }

}

 3、在config 模块的根目录下,执行gradle  clean generateJar

 4、变化后的项目结构如下


  5、打开config-1.0-SNAPSHOT.jar,其结构如下

   
 6、在config-1.0-SNAPSHOT.jar所在目录运行 java -jar config-1.0-SNAPSHOT.jar,结果如下:


 

 总结:

       这里主要用到了gradle的相关知识,sourceSets、task的等,还有一些细节配置等。学习运行spring boot的同时,也了解gradle的一些配置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要集中管理多个Spring Boot可执行JAR包,可以使用以下步骤: 1.创建一个目录来存储所有的可执行JAR包,例如/opt/apps。 2.在/opt/apps目录中创建一个配置文件,用于指定每个可执行JAR包配置参数。例如,可以创建一个名为application.properties的文件,每个可执行JAR包都有一个对应的配置段。例如: ``` # Configuration for app 1 app1.jar=java -jar /opt/apps/app1.jar --server.port=8080 # Configuration for app 2 app2.jar=java -jar /opt/apps/app2.jar --server.port=8081 ``` 3.创建一个shell脚本来启动和停止每个可执行JAR包。例如,可以创建一个名为start.sh的文件,并添加以下内容: ``` #!/bin/bash source /opt/apps/application.properties start_app() { app=$1 command=$2 if pgrep -f $app > /dev/null; then echo "$app is already running" else eval $command & echo "Starting $app" fi } for app in "${!app*.jar}"; do command=${!app} start_app $app "$command" done ``` 4.创建一个停止脚本来停止所有正在运行的可执行JAR包。例如,可以创建一个名为stop.sh的文件,并添加以下内容: ``` #!/bin/bash source /opt/apps/application.properties stop_app() { app=$1 if pgrep -f $app > /dev/null; then pkill -f $app echo "Stopping $app" else echo "$app is not running" fi } for app in "${!app*.jar}"; do stop_app $app done ``` 5.启动所有的可执行JAR包。在终端中运行以下命令: ``` chmod +x start.sh stop.sh ./start.sh ``` 6.停止所有的可执行JAR包。在终端中运行以下命令: ``` ./stop.sh ``` 这样就可以方便地集中管理多个Spring Boot可执行JAR包。注意,为了避免端口冲突,每个可执行JAR包需要设置不同的端口号。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值