2015-01-06 8 views
0

메이븐 사이트 플러그인으로 프로젝트 문서를 생성하고 싶습니다. "프로젝트 정보"와 "프로젝트 보고서"가있는 기본 레이아웃, 구조 및 기능은 저에게 좋습니다. 그러나 추가 문서 (세 번째 섹션) "추가 문서"를 추가하고 싶습니다.이 문서는 프로젝트에 그러한 문서가있는 경우 더 많은 문서로 연결됩니다.메이븐 사이트 문서 : 추가 문서에 대한 링크 추가

src/site/resources/otherDocu 디렉토리를 만들 수 있으며 문서는 원하는대로 target/site/otherDocu 디렉토리에 복사됩니다. 그러나 생성 된 사이트는 해당 사이트로 연결되지 않습니다.

언급 된 디렉토리의 파일을 나열하고 링크하는 세 번째 섹션 인 "추가 문서"가 필요합니다. 가능한 한 작은 오버 헤드로이 작업을 수행하려고합니다. 특히 피할 수있는 경우 많은 솔루션에 설명 된대로 CSS 등과 함께 site.xml을 포함하고 싶지 않습니다. 기본 사이트 구성을 사용하고 부품을 "주입"하는 방법은 무엇입니까? 또는 이것이 유일한 방법 일 경우 상위 POM에서 한 번만 파일 (예 : site.xml)을 구성하고 다른 모든 프로젝트에 대해 상속 할 수 있어야합니다. src/site/resources/otherDocu에있는 파일을 나열하고 링크를 표시하려면 어떻게합니까?

또는 내가 생각한 것 :이 작업을 수행하는 자체 보고서 플러그인을 작성할 수 있습니다. 그런 다음 POM의 "reporting/plugins"섹션에서이 플러그인을 지정하기 만하면됩니다. 다른보고 플러그인. 이 솔루션을 사용하면 올바른 방향의 한 단계 인 다른 모든보고 플러그인과 마찬가지로 "프로젝트 보고서"섹션에 추가 항목을 만들 수 있습니다. 그러나 여러 항목 (여러 링크 된 문서 때문에)이 필요하거나 하위 항목이있는 "추가 문서"항목이 필요합니다.

어느 쪽이 더 쉬울까요? 당신은 추천이나 비슷한 해결책을 가지고 있습니까? 누구든지 이미 일부 목록을 수행하는 파일 (site.xml 또는 유사)을 가지고 있으며 다른 모든 리소스 (이미지 등)가 필요하지 않으며 상속받을 수 있습니까?

답변

0

기본 동작을 유지하기 위해 우선 something in your site descriptor:

<body> 
    <menu ref="reports"/> 
    <menu ref="modules"/> 
    </body> 

자동 resources as you can read in the docs에 대한 suposed되는 대상에 파일을 복사하는 데 사용하는 것은을 사용하는 것입니다.

또한 자동으로 생성 된 문서는 보고서 플러그인을 통해 이동해야합니다.

+0

고마워요! 나는 당신의 제안을 따랐다. 그리고 그것은 나 자신의보고 플러그인을 작성함으로써, 나는 심지어 자신의 사이트 기술자가 필요하지 않지만, 기본 (site.xml은 필요 없다)을 사용할 수있다. 내 보고서의 출력은 표준 보고서 목록 ('

"에 의해 생성 된 보고서)에 추가됩니다. – user3489416

+0

Btw, 가장 유용한 링크 : [Codehaus : 보고서 플러그인 작성] (http://docs.codehaus.org/display/MAVENUSER/Write+your+own+report+plugin), [Sonatype : write plugin ] (http://books.sonatype.com/mvnref-book/reference/writing-plugins-sect-custom-plugin.html). [4thline.org : about outputDirectory] (http://4thline.org/articles/Howto%20write%20a%20Maven%20report%20plugin.html), [maven : Plugin configuration] (http : // maven. apache.org/guides/mini/guide-configuring-plugins.html), [maven : Java5 Annotations] (http://maven.apache.org/plugin-tools/maven-plugin-plugin/examples/using-annotations) .html) – user3489416

0

이 내가 비교적 간단합니다 .. 무엇을했는지 있습니다 :

SRC/사이트 /를 site.xml : 위 페이지를 docs.html 할 수있는 링크를 생성

<?xml version="1.0" encoding="ISO-8859-1"?> 
<project name="${project.name}"> 
    <body> 
     <menu name="Menu Title"> 
      <item name="Documentation" href="docs.html"/> 
     </menu> 
    </body> 
</project> 

합니다. 그리고 APT (수 또는 다른 언어)

SRC/사이트/아파트/docs.apt를 사용하여 문서의 페이지를 만들 :

------------- 
    Documentation 
    ------------- 

Documentation 

    Some text {{{/path/to/doc}document}}. 

별도의 페이지를 작성하지 않으려면, 당신은 아마 수 site.xml의 문서에 대한 링크를 삽입하십시오.

+0

고마워요.하지만 2 가지 이유 때문에 원하지 않습니다. 첫째, 자신의 site.xml을 사용하면 "수동"으로 재구성/포함해야하는 모든 기본 동작 (프로젝트 정보 및 프로젝트 보고서에 대한 링크)이 삭제됩니다. 내 자신의 site.xml (이것은 매우 짧은 코드로 수행 할 수 없다면 가능합니까?). 둘째, 솔루션은 하나씩 나열하지 않고도 "otherDocumentation"디렉토리의 파일을 수집해야합니다.프로젝트마다 다를 수있는 기존 프로젝트 문서를 자동으로 수집하는 동일한 문서 구성 파일 인 모든 프로젝트에 공통된 솔루션을 원합니다. – user3489416

+0

_ 먼저, 자신의 site.xml을 가지고 있으면 모든 기본 동작이 삭제됩니다. ... _ - 예제에서는 기본 사이트 페이지에 메뉴 섹션을 추가하기 만하면 전체 페이지를 대체하지 않습니다. _Second, 솔루션은 "otherDocumentation"디렉토리에서 하나씩 나열하지 않고 파일을 수집해야합니다 ._ 내 자신의 프로젝트에서 xhtml과 javascript를 사용하여 동적 컨텐츠를 생성합니다. 이것은 사용자의 요구에 맞지 않을 수도 있지만 동적 컨텐츠가 가능함을 보여줍니다. –

+0

_ 예제는 기본 사이트 페이지에 메뉴 섹션을 추가하기 만하면 전체 페이지를 대체하지 않습니다 ._ - 그랬 으면 좋겠어요 ... 물론 기본 페이지 레이아웃과 CSS 등은 여전히 ​​있습니다. 그런 뜻이라면. 그러나 나열한 site.xml을 사용하면 다른 모든 메뉴 항목이 사라지고 site.xml에 정의 된 항목 만 남게됩니다. 기본 메뉴 항목을 다시 추가하기 위해'

'를 사용할 수 있지만이를 피하고 싶습니다. @khmarbaise가 제안한 것처럼 자신 만의 보고서 플러그인을 작성하여 저에게 적합한 솔루션을 찾았습니다. – user3489416