2012-04-19 3 views
9

다소 큰 멀티 모듈 프로젝트에 직면하고 있습니다. 나는 루트 (상위) 프로젝트가 하위 프로젝트/하위 프로젝트에서 groupId 형식으로 구성되는 방법을보고 싶습니다. artifactId (계층 구조를 반영하기 위해 몇 가지 식별자로 가능)다중 모듈 프로젝트의 구조를 인쇄하는 방법이 있습니까?

물론 내 자신 만의 플러그인을 작성할 수 있습니다. 이 인쇄물을 가져 오지 만 선반에서 사용할 수있는 것이 있어야한다고 생각합니다.

답변

5

안녕하세요 늦게 대답을 : 입력하지만 나는 플러그인을 추가 한 :

이 작업을 시도해야한다

:

<dependency> 
    <groupId>org.qunix</groupId> 
    <artifactId>structure-maven-plugin</artifactId> 
    <version>0.0.1</version> 
</dependency> 

아래로 치어에 추가해야합니다 플러그인을 실행하려면 : 받는다는 저장소에

[INFO] --- structure-maven-plugin:0.0.1:printModules (default) @ test --- 
[INFO] 

Project structure (all modules): 



       test 
       | 
       |__ a 
       | 
       |__ b 
       | 
       | 
       \__ c 
        | 
        |__ d 
        | 
        |__ e 
        | 
        |__ f 

모든 파일 모듈의 insted 인쇄하려면

가 목표 사용 : 같은
<build> 
     <plugins> 

      <plugin> 
       <groupId>org.qunix</groupId> 
       <artifactId>structure-maven-plugin</artifactId> 
       <version>0.0.1</version> 
       <inherited>false</inherited> 
       <executions> 
        <execution> 
         <phase>compile</phase> 
         <goals> 
          <goal> 
           printModules 
          </goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 

    </build> 

는 출력이 보일 것 의 printAll 또는 그냥 원하는 경우 폴더는 목표 사용 printFolders합니다. <inherited>은 모듈에서 플러그인을 실행하지 말아야하며 <ignore>은 정규식 패턴을 사용하여이 파일을 건너 뛰는 것을 의미합니다.

편집 : https://github.com/buraksarac/MavenStructurePlugin

+1

이 플러그인은 굉장합니다! 당신은 최고예요. – javajavajava

+0

@javajavajava 도움이 된 것을 기쁘게 생각합니다 :) – HRgiger

+1

@HRgiger 훌륭한 작품! 이것은 내가 원하는 것입니다. 내 (매우) 늦은 답장을 드려서 죄송합니다. – sjaak

0

Google은 아직까지 그런 플러그인을 접해 본 적이 없으며 그 중 하나에 대해서도 듣지 못했습니다. 자신의 플러그인을 쓰거나 mvn dependency:tree을 파싱하거나 원자로 건설 명령을 사용하십시오. 아마도 콘솔 출력을 많이 사용하게 될 것입니다.

+0

감사합니다 : 당신은 GitHub의에서 뽑을 수 버전이 결코 없다. 나는 이미 그 대답을 두려워했다. – sjaak

0

나는 mvn dependency:tree이 길이라고 생각합니다. 가다.

mvn dependency:tree -DoutputFile=target/dependencies.txt 
cat target/dependencies.txt | awk -F ':' '{print $1":"$2}' 

그런 식으로, 당신은 들여 쓰기 있지만, 범위, 버전없이 좋은 종속성 트리를 가지고

+0

감사합니다. 그러나 나는 그것을 반대 방향으로 의미했다. 예, 트리를 사용하여 하위 구성 요소의 종속성을 인쇄 할 수 있습니다. 그러나 루트 프로젝트 (하위 구성 요소로 구성)에 필요한 모든 종속성을 수집 할 수 있습니까? – sjaak