我有一个项目corehibernate
和一个项目coregeneral
。 corehibernate
取决于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'
}
答案 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文件。