#java #gradle #deployment
#java #gradle #развертывание
Вопрос:
У меня есть проект библиотеки на Java, который представляет собой несколько папок, каждая из которых выполняет определенные части и имеет свои собственные зависимости.
Поскольку я работаю локально, я хотел бы развернуть эту библиотеку локально и получить Jar для импорта в другой проект.
По этой причине я использую gradle, и то, что я сделал, это перешел в каталог, где у меня есть все папки библиотеки, и gradle init
а затем gradle build
.
Поскольку мне нужны файлы локально, я увидел, что могу использовать gradle publishToMavenLocal
, что я и сделал, и это создало файл jar под ~/.m2/....
. Теперь проблема в том, что этот файл jar, похоже, содержит только META-INF
папку, а внутри нее manifest.mf
файл.
Это используемый build.gradle
файл.
Что я делаю не так? Должен ли я сделать что-то другое?
Ответ №1:
проверьте документы gradle, там также есть полный пример.
обязательно добавьте свои исходные коды, которые вы хотите скомпилировать и встроить в jar.
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')
Комментарии:
1. Я перешел на ту же страницу, которую вы предоставили из gradle docs, и в конечном итоге у меня есть
build.gradle
то, что я предоставил выше. Проблема остается, сгенерированный jar пуст2. вам нужен плагин java для компиляции исходного каталога. приведенный выше пример работает.