依赖jar不与项目jar Gradle捆绑在一起

Sid*_*rth 9 jar gradle

我有一个项目corehibernate和一个项目coregeneral.corehibernate依赖于coregeneral.我需要将jar文件coregeneralcorehibernatejar 一起捆绑.我尝试了各种版本的build.gradle东西,没有任何效果.

我试过了 compile files("../coregeneral/build/libs/coregeneral.jar")

这个版本的fatJar也行不通.

apply plugin: 'java'

repositories {
    jcenter()
}

dependencies {
    compile (':coregeneral')
    testCompile 'junit:junit:4.12'
}

jar {
    baseName='corehibernate'
    from ('bin')
}

task fatJar(type: Jar, dependsOn: jar) {
  baseName = project.name + '-fat'
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*rga 1

将项目捆绑在一起有两种基本方法。第一种是使用应用程序插件,它创建一个带有脚本的 zip 文件,该脚本也将执行您的应用程序并默认捆绑所有 jar。第二种方法是使用分发插件并自己定义最终存档(zip 或 tar)。

这是使用应用程序插件的示例项目:

设置.gradle

rootProject.name = 'root'
include 'partone', 'parttwo'
Run Code Online (Sandbox Code Playgroud)

构建.gradle

subprojects {
    apply plugin: 'java'
}
Run Code Online (Sandbox Code Playgroud)

partone/build.gradle - 这个是空的

第二部分/build.gradle

apply plugin: 'application'

mainClassName = 'Hello'

dependencies {
    compile project (':partone')
}
Run Code Online (Sandbox Code Playgroud)

假定这两个项目实际上都有一些内容(类),当您运行时,gradle :projecttwo:build它将生成一个 zip 文件,其中包含可执行脚本和捆绑在其中的两个 jar。

如果您更喜欢使用分发插件,请将parttwo/build.gradle更改为:

apply plugin: 'distribution'

distributions {
    main {
        contents {
            from jar
            from (project.configurations.runtime)
        }
    }
}

dependencies {
    compile project (':partone')
}
Run Code Online (Sandbox Code Playgroud)

并再次运行gradle :parttwo:build。它将创建一个包含这两个 jar 的 zip 文件。