关于Makefile的小问题。我们目前正在使用Makefile来运行命令。(其中许多人)。一个特定的命令,即java构建,正在失败。
下面是Makefile的片段:
.PHONY: help
.DEFAULT_GOAL := help
help: ## This help.
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
build:
mvn clean install -U -Pintegration -Dspringdoc.writer-with-default-pretty-printer=true javadoc:javadoc checkstyle:checkstyle spotbugs:spotbugs pmd:pmd pmd:cpd org.pitest:pitest-maven:mutationCoverage jacoco:prepare-agent jacoco:report dependency:tree sonar:sonar
需要强调的是,make build
在这里没有做任何事情:
make build
make: Nothing to be done for `build'.
在IDE上,我可以看到错误:
$, <conditional>, <directive>, EOL, '\t' or macro expected, got ':'
此外,要添加信息,此方法可以:
.PHONY: help
.DEFAULT_GOAL := help
help: ## This help.
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
clean: ## mvn clean
mvn clean;
调用make clean
实际上是干净的。让帮助也是有效的。
但不遵守这条规则:
build:
mvn clean install -U -Pintegration -Dspringdoc.writer-with-default-pretty-printer=true javadoc:javadoc checkstyle:checkstyle spotbugs:spotbugs pmd:pmd pmd:cpd org.pitest:pitest-maven:mutationCoverage jacoco:prepare-agent jacoco:report dependency:tree sonar:sonar
我不明白这是什么意思。请问如何解决这个问题?
要确认的是,从终端运行的完全相同的maven命令运行得非常好。
谢谢你的帮助。
发布于 2022-06-29 02:44:24
使用Make "call“函数。
define buildfn
mvn clean install -U -Pintegration -Dspringdoc.writer-with-default-pretty-printer=true javadoc:javadoc checkstyle:checkstyle spotbugs:spotbugs pmd:pmd pmd:cpd org.pitest:pitest-maven:mutationCoverage jacoco:prepare-agent jacoco:report dependency:tree sonar:sonar
endef
然后像这样运行它:
build:
$(call buildfn)
以下是参考文档:调用函数
https://stackoverflow.com/questions/64457418
复制相似问题