2012-10-04 34 views
2

我的build.gradle:摇篮JAR:依赖罐子的顺序和实际类

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

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

我想告诉摇篮先挑依赖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 { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) } } // deps 
from sourceSets.main.output.classesDir // classes 
from 'log4j.properties' // some file 
+1

尝试多个'from'语句与您的'zipgroupfileset'条目类似 –

+0

好吧,我已经添加了这个答案 –

回答

3

可以定义多个from报表。jar任务,生成的文件将在该顺序进行处理。