Как развернуть Jar из проекта библиотеки

#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 для компиляции исходного каталога. приведенный выше пример работает.