Переход от компиляции Java с помощью GNU Make к gradle - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть проект, генерирующий множество (> 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?

1 Ответ

0 голосов
/ 26 февраля 2019

Хорошо, мне удалось создать большой build.gradle файл, содержащий несколько динамических вызовов ant.javac: https://github.com/lindenb/jvarkit/blob/8ef260931025c29942a3231ea876b59e5c2dcc46/build.gradle

Пока все отлично работает ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...