У меня есть проект, генерирующий множество (> 100) небольших инструментов Java.
В течение многих лет я использовал GNU Makefile (см. здесь ) для управлениякомпиляция моих инструментов (гораздо более компактная + более простая, чем файл ant / Maven).В основном я объявил макрос Makefile , который создает исполняемый файл jar с использованием небольшого набора параметров:
define compile-htsjdk-cmd
$(1) : ${htsjdk.jars} \
$(addsuffix .java,$(addprefix ${src.dir}/,$(subst .,/,$(2)))) \
$(3)
(...)
${JAVAC} \
-d ${tmp.dir} \
-g -classpath "$$(subst $$(SPACE),:,$$(filter %.jar,$$^))" \
-sourcepath ${src.dir}:${generated.dir}/java $$(filter %.java,$$^)
(...)
${JAR} cfm ${dist.dir}/$(1)$(if ${standalone},-fat).jar ${tmp.mft} -C ${tmp.dir} .
(...)
endef
$(eval $(call compile-htsjdk-cmd,referencetovcf,${jvarkit.package}.tools.misc.ReferenceToVCF,${jcommander.jar}))
$(eval $(call compile-htsjdk-cmd,sam2json,${jvarkit.package}.tools.misc.SamToJson,${jcommander.jar} ${gson.jar} ))
$(eval $(call compile-htsjdk-cmd,sam2psl,${jvarkit.package}.tools.misc.SamToPsl,${jcommander.jar} ))
$(eval $(call compile-htsjdk-cmd,sam2tsv,${jvarkit.package}.tools.sam2tsv.Sam2Tsv,${jcommander.jar} ))
(...)
Система работала годами без каких-либо проблем.Теперь я хотел бы обработать больше конфигураций (используя более одного jdk, добавив специальные вещи в некоторые файлы Manifest и т. Д.). И, насколько я понимаю, gradle будет лучшим инструментом для достиженияthis.
Я видел несколько примеров только с одной целью, но мне не ясно, как я мог легко преобразовать мой Makefile в файл gradle.Могу ли я поместить все мои цели в один файл build.gradle ?Как я могу (и должен ли я) подражать тому, что я делал с моим макросом makefile?