我有以下Makefile,当您在CLI中输入make时,它将运行所有目标,我知道您可以使用特定目标来运行make 但是有没有办法通过多个目标来运行品牌?
例如(通过cli run module1 pack cleanup
按此顺序
- module1
- 包装
- 清理
(为此,仅module2将无法运行) 我不想为上述3个步骤创建新目标 这就是化妆
all: module1 module2
.PHONY: module1
module1:
@echo "run module 1"
DIR=$(PWD)
@echo $(DIR)
.PHONY: module2
module2:
@echo "run module2”
pack:
pack $(DIR)
cleanup:
gbt clean $(DIR)
答案 0 :(得分:1)
您可以为此使用class ArticleAPIView(generics.CreateAPIView):
queryset = Article.objects.all()
serializer_class = CreateArticleSerializer
permission_classes = (IsAuthenticatedOrReadOnly,)
#Create a new post
def post(self, request, format=None):
data_map = {
'title': request.data.get('title'),
'body': request.data.get('body'),
'image_url': request.data.get('imageUrl'),
'keypoint1': request.data.get('keyPoint1'),
'keypoint2': request.data.get('keyPoint2'),
'keypoint3': request.data.get('keyPoint3'),
'keypoint4': request.data.get('keyPoint4'),
}
serializer = CreateArticleSerializer(data=data_map,context=
{'request': request})
if serializer.is_valid():
serializer.save(author=self.request.user)
post_id = serializer.instance.id
post = get_object_or_404(Article, pk=post_id)
return Response((jsend.success({'post':
serializer.data})), status=status.HTTP_201_CREATED)
else:
return Response((jsend.fail(serializer.errors)),
status=status.HTTP_400_BAD_REQUEST)
。像这样:
MAKECMDGOALS
如果您未在命令行上指定PACK := $(filter pack,$(MAKECMDGOALS))
CLEANUP := $(filter cleanup,$(MAKECMDGOALS))
module1: $(PACK) $(CLEANUP)
...
module2: $(PACK) $(CLEANUP)
...
pack:
pack $(DIR)
cleanup:
git clean $(DIR)
或pack
目标,则关联的变量cleanup
和PACK
将为空字符串,并且不会被列为CLEANUP
或module1
等的先决条件。
答案 1 :(得分:1)
您不想“按顺序”运行它们。 make的全部目的是决定要做什么和以什么顺序进行。 Makefile用于列出规则和依赖性,因此make可以正常工作。
如果要按顺序运行命令,请编写脚本。