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

时间:2016-11-03 08:22:37

标签: gradle jar

我有一个项目corehibernate和一个项目coregeneralcorehibernate取决于coregeneral。我需要将coregeneral的jar文件与corehibernate jar一起捆绑在一起。我尝试了各种版本的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'
}

1 个答案:

答案 0 :(得分:1)

如何将项目捆绑在一起有两种基本方法。第一种方法是使用application plugin创建一个带脚本的zip,这些脚本也会执行你的应用程序并默认捆绑所有的jar。第二种方法是使用distribution plugin并自己定义最终档案(zip或tar)。

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

<强> settings.gradle

rootProject.name = 'root'
include 'partone', 'parttwo'

<强>的build.gradle

subprojects {
    apply plugin: 'java'
}

partone / build.gradle - 这个是空的

<强> parttwo /的build.gradle

apply plugin: 'application'

mainClassName = 'Hello'

dependencies {
    compile project (':partone')
}

假设两个项目实际上都有一些内容(类),当你运行gradle :projecttwo:build时,它会生成一个带有可执行脚本的zip文件,并且两个jar都捆绑在里面。

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

apply plugin: 'distribution'

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

dependencies {
    compile project (':partone')
}

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