3

내 어플리케이션 용 사이트를 만들기 위해 Maven을 사용하고 싶습니다. 이것은 다중 모듈 응용 프로그램이며, 부모 모듈은 간단한 사이트 모듈이며, 첫 번째 자식은 응용 프로그램의 핵심이고, 두 번째는 GUI (스윙)입니다.javadocs로 Maven 다중 모듈 프로젝트 사이트

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <version>2.7</version> 
      <executions> 
       <execution> 
        <phase>package</phase> 
        <id>attach-javadocs</id> 
        <goals> 
         <goal>jar</goal> 
         <goal>javadoc</goal> 
        </goals> 
       </execution> 

      </executions> 
     </plugin> 
    </plugins> 
</build> 
<reporting> 
    <plugins> 
     <plugin> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <version>2.7</version> 
      <configuration> 
       <links> 
        <link>http://download.oracle.com/javase/6/docs/api/</link> 
       </links>  
      </configuration> 
     </plugin>  
    </plugins> 

</reporting> 

문제 (I 모두에서 관련이없는 부분을 제거) :

지금

<modules> 
    <module>core</module> 
    <module>kayako-desktop</module> 
</modules> 
<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-site-plugin</artifactId> 
      <version>2.2</version> 
      <configuration> 
       <locales>en</locales> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <version>2.7</version> 
      <executions> 
       <execution> 
        <phase>install</phase> 
        <goals> 
         <goal>aggregate</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
<reporting> 
    <plugins> 
     <plugin> 
      <artifactId>maven-javadoc-plugin</artifactId> 
      <version>2.7</version> 
      <configuration> 
       <aggregate>true</aggregate> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-changes-plugin</artifactId> 
      <version>2.4</version> 
     </plugin> 
    </plugins> 
</reporting> 

내 핵심의 치어가 부모의 pom.xml을 위해 따라 사용 나는 MVN 시도 site : stage이지만 javadoc은 코어 모듈에서 수집되지 않습니다. 내가 틀린 게 뭐야?

+0

관련 질문보기 : http://stackoverflow.com/questions/3404322/how-to-use-javadocaggregate-properly-in-multi-module-maven-project –

답변

2

부모 pom의 maven-site-plugin 구성의 <reportPlugins> 섹션에 javadoc 플러그인을 구성하십시오.

다음은 저에게 효과적이었습니다. 부모 치어에서

: 아이 리딩의 각에서

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-site-plugin</artifactId> 
      <version>3.3</version> 
      <configuration> 
       <reportPlugins> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-javadoc-plugin</artifactId> 
         <version>2.9</version> 
         <reportSets> 
          <reportSet> 
           <id>aggregate</id> 
           <reports> 
            <report>aggregate</report> 
           </reports> 
          </reportSet> 
         </reportSets> 
         <configuration> 
         <!-- Here you can add special configurations for your javadoc, if needed --> 
         </configuration> 
        </plugin> 
        <!-- Here you can also configure more report plugins --> 
        <!-- for your site, such as maven-project-info-reports-plugin --> 
       </reportPlugins> 
      </configuration> 
     </plugin> 
    <!-- ... --> 
    </plugins> 
</build> 
<!-- ... --> 
<distributionManagement> 
    <site> 
     <id>website</id> 
     <url>http://site.url/can/be/tentative/or/hypothetical</url> 
    </site> 
</distributionManagement> 

은 또한 예를 들어 사이트 플러그인에 대한 특정 보고서, 확실한 테스트 보고서 또는 프로젝트 정보를 구성 할 수 있습니다. 그러나 자식 모듈에 대해 집계되지 않은 javadoc도 필요하지 않으면 javadoc 플러그인 구성을 배치하지 않아도됩니다.

그런 다음 상위 디렉토리에서 mvn site site:stage을 수행 할 수 있어야합니다. 집계 된 javadoc을 보려면 브라우저에서 해당 디렉토리의 target/staging/index.html을 가리킨 다음 페이지 왼쪽의 색인에서 "Project Reports"및 "JavaDocs"를 차례로 클릭하십시오.

추가 팁 :

때때로 나는 더 많은 물건을 수행하고 더 오래 걸립니다 전체 site site:stage을 수행 할 필요없이 집합의 javadoc에서 빨리보고 싶다. 그래서 부모 pom의 <plugin> 섹션에 직접 maven-javadoc-plugin에 대한 설정을 포함합니다. 그렇게하면 mvn javadoc:aggregate을 실행하고 target/site/apidocs/index.html에 신속하게 집계 된 javadocs를 얻을 수 있습니다.

+0

감사합니다. 언급 한 프로젝트는 더 이상 내 프로젝트가 아니지만 다른 프로젝트에서 팁을 사용할 것입니다. 그리고 나는 사이트를 알지 못했습니다 : 전에 무대 대상으로, 이것은 매우 유용합니다! –