首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >运行Maven命令的Makefile,但是命令有":“字符

运行Maven命令的Makefile,但是命令有":“字符
EN

Stack Overflow用户
提问于 2020-10-21 05:53:11
回答 1查看 690关注 0票数 0

关于Makefile的小问题。我们目前正在使用Makefile来运行命令。(其中许多人)。一个特定的命令,即java构建,正在失败。

下面是Makefile的片段:

代码语言:javascript
代码运行次数:0
运行
复制
.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在这里没有做任何事情:

代码语言:javascript
代码运行次数:0
运行
复制
make build
make: Nothing to be done for `build'.

在IDE上,我可以看到错误:

代码语言:javascript
代码运行次数:0
运行
复制
$, <conditional>, <directive>, EOL, '\t' or macro expected, got ':'

此外,要添加信息,此方法可以:

代码语言:javascript
代码运行次数:0
运行
复制
.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实际上是干净的。让帮助也是有效的。

但不遵守这条规则:

代码语言:javascript
代码运行次数:0
运行
复制
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命令运行得非常好。

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-29 10:44:24

使用Make "call“函数。

代码语言:javascript
代码运行次数:0
运行
复制
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

然后像这样运行它:

代码语言:javascript
代码运行次数:0
运行
复制
build:
    $(call buildfn)

以下是参考文档:调用函数

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64457418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档