Gradle JAR:依赖jar和实际类的顺序

时间:2012-10-04 13:52:00

标签: java ant jar gradle

我的build.gradle:

jar {
    dependsOn configurations.runtime
    from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) } }

    manifest {
        attributes(
            'Main-Class': 'com.company.product.veryNiceMainClass'
        )
    }
}

我想告诉Gradle首先选择依赖JAR,然后在创建JAR时选择实际的实现类,可能会覆盖一些东西。这是实际项目的必要条件。我做了一些RTFM,但没有帮助。你可以在蚂蚁:

这样做
<target name="dist">
    <!-- deps first -->     
    <jar destfile="${dist.dir}/${ant.project.name}-${build.version}.jar">
        <zipgroupfileset dir="${lib.dir}" includes="**/*-jar-*.jar" />
        <zipgroupfileset dir="${lib.dir}" includes="**/*-bundle-*.jar" />
        <zipgroupfileset dir="${basedir}/lib-old" includes="**/*.jar" />
    </jar>
    <!-- classes, UPDATE (!) the JAR -->
    <jar destfile="${dist.dir}/${ant.project.name}-${build.version}.jar" update="true">
        <fileset dir="${build.classes.dir}" />
    </jar>
</target>

有什么想法吗?

编辑:已验证解决方案(感谢Ingo)。只需按照您的意愿顺序定义多个from语句。

from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) } } // deps
from sourceSets.main.output.classesDir // classes
from 'log4j.properties' // some file

1 个答案:

答案 0 :(得分:3)

您可以为from任务定义多个jar语句,生成的文件将按该顺序处理。