簡體   English   中英

如何從特定類創建JAR並將其與Gradle一起使用?

[英]How to create JAR from specific classes and use it with Gradle?

我想在不同的項目中使用的Java類很少。

我現在不想在專門的項目中移動這些類。

所以我想用這些類構建一個JAR,並且能夠在我的其他項目中使用它,所有這些都使用Gradle。

所以這里是我的JAR任務(來源),我把它作為工件發布:

task utilitiesJar(type: Jar) {
    baseName = 'utilities'
    version =  '0.0.1'
    includeEmptyDirs = false
    from sourceSets.main.allJava
    include "**\\common\\exceptions\\**"
    include "**\\common\\json\\**"
    include "**\\common\\logging\\**"
}

publishing {
    publications {
        utilities(MavenPublication) {
            artifact utilitiesJar
            groupId group
            artifactId utilitiesJar.baseName
            version utilitiesJar.version
        }
    }
    repositories {
        maven {
            url 'my_URL'
        }
    }
}

我用另一個項目回來了:

repositories {
    mavenCentral()

    maven {
        url 'my_URL'
    }
}

...
compile (...)
...

好像JAR被正確導入了(我可以在IntelliJ的“外部庫”及其所有類中看到它),但我無法使用它。 也許是因為缺少.class文件? 我是Java的初學者,也許我錯過了一些東西。

如何僅使用某些類創建JAR然后使用它?

好的,如評論中所述,我必須包含構建的.class文件,我不能使用這樣的外部.java類。

我的解決方案:

def utilitiesName = '...'
def utilitiesVersion = '0.0.1'

task utilitiesJar(type: Jar, dependsOn: classes) {
    baseName = utilitiesName
    version =  utilitiesVersion
    includeEmptyDirs = false
    from sourceSets.main.output
    include ("**\\common\\exceptions\\**\\*", "**\\common\\json\\**\\*", "**\\common\\logging\\**\\*")
}

task utilitiesSourcesJar(type: Jar, dependsOn: classes) {
    baseName = utilitiesName
    version =  utilitiesVersion
    classifier = 'sources'
    includeEmptyDirs = false
    from sourceSets.main.allJava
    include ("**\\common\\exceptions\\**\\*", "**\\common\\json\\**\\*", "**\\common\\logging\\**\\*")
}

publishing {
    publications {
        utilities(MavenPublication) {
            artifact utilitiesJar
            artifact utilitiesSourcesJar
            groupId group
            artifactId utilitiesName
            version utilitiesVersion
        }
    }
    repositories {
        maven {
            url 'myURL'
        }
    }
}

現在我可以使用它並在IDE中查看類。

PS:這樣做很臟。 創建一個子項目/模塊,這就是如何做到這一點的方式,這就是我所做的最終結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM