使用Gradle将Maven库打包成Jar

时间:2022-09-14 09:41:59

项目需要将Dropwizard(Java RESTful服务)与Derby(轻量数据库)打包成Jar然后提供给其他工程使用,由于Dropwizard并未提供jar-release版本,所以写了个gradle构建脚本用于将maven库中的Dropwizard与Derby整合打包成一个jar包,然后再添加到目标项目中使用。

 

脚本代码:

apply plugin: 'java'

project.ext {
    // 项目标题名称
    title = 'DropwizardDerby'
    // 项目名称前缀
    baseName = 'DropwizardDerby'
    // 项目版本信息
    version = '0.1.0'
    // dropwizard版本
    dropwizardVersion = '1.0.6'
    // derby版本
    derbyVersion = '10.13.1.1'
}

task release(type: Jar) {
    // 清单属性
    manifest {
        attributes 'Implementation-Title': project.ext.title, 'Implementation-Version': project.ext.version
    }
    // jar包名
    baseName = project.ext.baseName + project.ext.version
    // 打包依赖
    from {
        configurations.compile.collect {
            it.isDirectory() ? it : zipTree(it)
        }
    }
    with jar
}

// maven库
repositories {
    mavenCentral()
}

// 依赖设置
dependencies {
    compile(
            'io.dropwizard:dropwizard-core:'+project.ext.dropwizardVersion,
            'io.dropwizard:dropwizard-hibernate:'+project.ext.dropwizardVersion,
            'io.dropwizard:dropwizard-migrations:'+project.ext.dropwizardVersion,
            'io.dropwizard:dropwizard-auth:'+project.ext.dropwizardVersion,
            'org.apache.derby:derby:'+project.ext.derbyVersion
    )
}

 

使用方式:

1、安装Gradle(我用的2.1.0版本)并加入环境变量

2、将该脚本创建在任意目录中

3、执行

gradle clean
gradle release

4、然后如果运行正常的话,会在build/libs中找到生成的jar包

5、然后在其他项目中依赖该jar即可,理论上本脚本也可以适用于其他maven中库的打包,再次仅提供一个思路,可以自行修改

 

就是这些,感谢阅读,如果有更好的方法欢迎评论交流!