У меня есть быстрый и грязный небольшой make-файл, который выполняет сборки из исходного кода для относительно небольшого Java-проекта:
default: bin/classes/EntryPoint.class bin/classes/manifest
jar cvfm ./bin/output.jar ./bin/classes/manifest -C ./bin/classes EntryPoint.class
bin/classes/EntryPoint.class: ./src/EntryPoint.java bin
javac -sourcepath ./src -d ./bin/classes ./src/EntryPoint.java
bin/classes/manifest: src/manifest
cp bin/classes/manifest src/manifest
bin:
mkdir ./bin; mkdir ./bin/classes;
clean:
rm -rf bin
Недостатком здесь является то, что если я хочу добавить новый файл Java, мне нужно добавить для него цель, добавить зависимости к шагу упаковки jar и путь к командной строке шага упаковки jar. Добавление одного и того же в трех местах приведет к неразберихе с чем-то большим, чем 4-5 файлов.
То, что я хотел бы сделать, это просто добавить определение "SOURCEFILES= files here"
и перечислить файлы, и не нужно связываться с командами и тому подобным. Можно ли это сделать?
ПРИМЕЧАНИЕ: я знаю, что, вероятно, есть лучшие инструменты для этого (например, ant
), но это то, к чему я обращаюсь как домашнее задание, и я не могу требовать от грейдера ничего, кроме jdk amd make
установлено.