【问题标题】:Gradle JAR: order of dependency jars and actual classesGradle JAR:依赖 jar 和实际类的顺序
【发布时间】:2012-09-25 13:55:13
【问题描述】:

我的 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 但没有帮助。您可以在 ant 中执行此操作:

<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

【问题讨论】:

  • 尝试多个类似于zipgroupfileset 条目的from 语句
  • 好的,我已经添加了这个作为答案

标签: java ant jar gradle


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 2015-03-12
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    相关资源
    最近更新 更多