可执行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 = '[email protected]'

/**
 * 定义源文件所在目录和输出目录
 */
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的一些配置。

猜你喜欢

转载自yangjianzhouctgu.iteye.com/blog/2377717