私のbuild.gradle:
jar {
dependsOn configurations.runtime
from { configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) } }
manifest {
attributes(
'Main-Class': 'com.company.product.veryNiceMainClass'
)
}
}
最初に依存関係の JAR を選択するように Gradle に指示し、次に 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