首页 文章

使用Gradle创建FAT源仅jar

提问于
浏览
2

我需要使用Gradle创建一个包含依赖项(FAT jar)的jar .

问题:jar需要只包含直的.groovy文件......没有.class文件 .

我从Gradle食谱中看到了这样做的方法:http://docs.codehaus.org/display/GRADLE/Cookbook#Cookbook-Creatingafatjar

和One-Jar插件:https://github.com/rholder/gradle-one-jar

但是这两种方式都涉及使用已编译的.class文件而不是实际的源.groovy文件 . 另外,我不需要这个jar可以运行 . 我只需要能够引用我的.groovy脚本并且已经存在依赖关系 .

这可能吗?

1 回答

  • 2

    我不确定你是否需要一个.jar文件,或者.zip就足够了,因为在.jar中分发源会很困惑 . 但是,无论您需要什么,Zip任务都是您想要的:

    task('fatJar', type: Zip) {
        extension = 'jar' // overriding default value: 'zip'
        classifier = 'fat' // alternatively you can set basename or appending
    
        from(sourceSets.main.allGroovy) // will fail if the groovy plugin isn't applied
        from(configurations.runtime) // this includes all your jars needed on runtime
    }
    

    现在这是一个非常简单的例子,它将在build / distributions /中创建一个名为[projectName] - [version] -fat.jar的文件,其中包含zip根目录中的所有jar文件和它们旁边的groovy源文件 . 您可能需要查看Gradle Zip task的文档以获取更多选项 .

相关问题