현재 작업중인 프로젝트는 편안한 웹 백엔드입니다. 이를 위해 Spring MVC를 사용합니다.
그러나 powershell을 사용하여 나머지 API에 대한 작은 문서를 생성하고 싶습니다. 나는 이것을 프론트 엔드 개발자에게주고 싶다. 그는 Java GUI가 아니므로 Java 문서를 그의 발에 던지고 싶지 않습니다.
그래서 긴 이야기를 짧게 자르십시오. 컨트롤러 파일을 찾고 @RequestMapping으로 주석이 달린 메서드의 서명을 읽는 스크립트를 작성하려고합니다.
예:
@RequestMapping(value="/account", method=RequestMethod.GET)
public @ResponseBody List<AccountIF> getAll() {
return service.getAll();
}
@가있는 줄을 꽤 쉽게 읽을 수 있습니다. 그러나 정규식으로 두 줄을 모두 얻으려고하면 아무것도 얻지 못합니다.
이것이 내가 지금까지 가지고있는 것입니다.
ls -r -i *Controller.java | Select-String -Pattern '@RequestMapping.+\n\t+.+'
내가 도대체 뭘 잘못하고있는 겁니까?
정규식이 일치하지 않습니다 . 메서드에 newline
+ tab
문자 가 없습니다 .
@ RequestMapping. + \ n \ t +. +
이것으로 장식 된 모든 메소드 서명 을 얻고 싶다고 가정하면 다음 과 @RequestMapping
같이 작동합니다.
Get-ChildItem -Path '.\*Controller.java' | Get-Content -Raw | ForEach-Object {
[regex]::Matches($_, '\s*(@RequestMapping.+\))\s+(.+\))').Value.Trim()
}
추신 : 참고로 Select-String
파일을 한 줄씩 처리 하는 것처럼 보이므로 여러 줄 정규식은 어쨌든 작동하지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다