2013-01-15 3 views
2

다중 모듈 maven 프로젝트에서 JavaDocs에 대한 대체 출력 위치를 구성하려고합니다.JavaDoc의 대체 출력 디렉토리

<build> 
... 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-javadoc-plugin</artifactId> 
    <version>2.9</version> 
    <configuration> 
     <noqualifier>all</noqualifier> 
     <reportOutputDirectory> 
      ${project.reporting.outputDirectory}/api 
     </reportOutputDirectory> 
     <destDir>api</destDir> 
    </configuration> 
</plugin> 
... 
</build> 

을 그리고 여기에 내가 project.reporting.outputDirectory를 설정 곳이다 :이처럼 보이도록 부모 POM에서 받는다는 - 자바 독을 구성.

<properties> 
    <project.reporting.outputDirectory> 
     ./module-webapp/src/main/webapp/docs 
    </project.reporting.outputDirectory> 
</properties> 

그러나, Maven은 위의 구성에 상관하지 않는 것, 그리고에도 불구하고 기본 디렉토리에서의 JavaDoc를 출력한다. 왜 이런거야?

또한 내 project.reporting.outputDirectory 변수에 상대 경로를 사용했습니다. 부모 모듈에서 서브 모듈을 실행할 때 mvn javadoc:javadoc을 실행할 때이 상대 경로가 동일한 의미일까요?

미리 감사드립니다 ... 대단히 감사합니다!

답변

3

변수의 이름을 변경해야합니다. project.reporting.outputDirectory은 내장 변수이며 maven이 사용자의 설정보다 우선합니다.

실제로이 작업을 수행하려면 project.reporting.outputDirectory 또는 ${basedir}과 같은 디렉토리를 설정해야 할 수도 있습니다.

는 또한 문서의 내 독서를 기반으로, 명심, 최종 디렉토리 당신이 지금까지 상대 디렉토리와 서브 모듈이 가서

을 정확히 원하는하지 않을 수 있습니다 ./module-webapp/src/main/webapp/docs/api/api이 될 것입니다, 각 빌드는 경향이있다 자체 포함되어 있으므로 각 하위 빌드에 상대적으로 javadocs가 입금됩니다.

1

무엇이 잘못되었는지 알아 냈습니다. 어떤 이유로 $ {project.reporting.outputDirectory}를 제거하고 경로를 직접 입력하면 작동합니다. 다른 이유로 다른 변수 이름 (위의 변수를 제외하고)을 사용하면 작동합니다.