我在Java中有一个库项目,它是几个文件夹,每个文件夹都有特定的部分,并且有自己的依赖项。 由于我在本地工作,我想在本地部署这个库并让Jar导入到另一个项目。
出于这个原因,我使用gradle,我所做的是进入我拥有库和gradle init
以及gradle build
的所有文件夹的目录。
因为我想在本地使用这些文件,所以我看到我可以使用gradle publishToMavenLocal
,我做了它,它在~/.m2/....
下创建了一个jar文件。现在问题是这个jar文件似乎只包含一个META-INF
文件夹,里面有一个manifest.mf
文件。
This是使用的build.gradle
文件。
我究竟做错了什么?我应该做些不同的事吗?
检查gradle docs还有一个完整的例子。
一定要添加你想要在jar中编译和构建的sourceSet。
的build.gradle
plugins {
id 'java'
id 'maven-publish'
}
repositories {
mavenLocal()
mavenCentral()
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
sourceSets {
main {
java { srcDir 'src/main/java' }
resources {
srcDirs 'src/main/resources'
}
}
test {
java { srcDir 'src/test/java' }
resources {
srcDirs 'src/test/resources'
}
}
}
publishing {
publications {
maven(MavenPublication) {
groupId = 'org.gradle.sample'
artifactId = 'project1-sample'
version = '1.1'
from components.java
}
}
}
您还可以将库项目添加到主项目中,如下所示:
的build.gradle
dependencies {
compile project(':library_project')
}
settings.gradle
rootProject.name = 'Project'
include ":library_project"
project(':library_project').projectDir = new File(settingsDir, '../library_project')