2011-12-08 11 views
2

javadocで別のプロジェクトのAPIを参照するのに問題があります。別のプロジェクト間でjava docをクロスする

プロジェクト間には厳しい規則があります( "app"プロジェクトで参照される "共通"プロジェクト)。 両方のプロジェクトはうまくいくので、実際には存在しないクラスやパッケージに問題はありません。

私の理解では、javadocはJavaと同じように一種のbuildpathを持っていませんが、代わりに他のjavadoc Webサイトへのリンクを使用しています。 HTMLの相互参照を生成できるという点で、かなり論理的な理由があります。

次のようにこれが行くようにする私の試み:

  1. は私が私のイントラネット
  2. 上のウェブサーバ上で、私はへのリンクを追加することを投げた共通プロジェクト
  3. のJavadocを構築しましたアプリケーションプロジェクトのjavadoc antタスクへのapi(イントラネット上)
  4. 私はアプリのプロジェクトをビルドしようとし

のJavadocは、まだフォームのエラーメッセージを出してくれる:

[javadoc] C:\Users\couling\workspace\app\src\com\blahblah\app\AppMain.java:14: package com.blahblah.common.foo does not exist 
[javadoc] import com.blahblah.common.foo.Bar 
[javadoc]        ^

結果javadocは、プロジェクト間での相互リンクを持っていません。

次のように2つのプロジェクトのためのAntタスクは、次のとおりです。

共通:

<javadoc 
     access="protected" 
     author="true" 
     classpath="." 
     destdir="out/doc/docs" 
     nodeprecated="false" 
     nodeprecatedlist="false" 
     noindex="false" 
     nonavbar="false" 
     notree="false" 
     packagenames="*" 
     source="1.6" 
     sourcepath="src" 
     splitindex="true" 
     use="true" 
     version="true"> 
      <link href="http://download.oracle.com/javase/6/docs/api/" /> 
</javadoc> 

アプリケーション:私はリファレンスにアプリを取得するために何をする必要があるかについて

<javadoc 
     access="protected" 
     author="true" 
     classpath="." 
     destdir="out/doc/docs" 
     nodeprecated="false" 
     nodeprecatedlist="false" 
     noindex="false" 
     nonavbar="false" 
     notree="false" 
     packagenames="com.blahblah.app.*" 
     source="1.6" 
     sourcepath="src" 
     splitindex="true" 
     use="true" 
     version="true"> 
      <link href="http://intranet.blahblah.com/api/common/docs/" /> 
      <link href="http://download.oracle.com/javase/6/docs/api/" /> 
</javadoc> 

任意の考え一般?

+0

ごめんなさい。私は自分の答えを取り除いた。これはAntクラスパスの問題のようです。私はmavenユーザーで、antとの経験はありません。 – Gray

+0

Barクラスのパッケージはアクセス可能で、JavaDocには含まれていませんか? – Gandalf

+0

バーは一般的なプロジェクトの一部です。 javadocには、http://intranet.blahblah.com/api/common/docs/というリンクを追加することで、(私は)考えなければならないものがあります。 このURLの下にそれぞれのjavadocページが存在することを確認しました。私はWebサーバーのログをチェックして、pacakge-listにアクセスしていて、com.blahblah.common.fooがそのファイルに記述されていることを確認しました。 私は(私が書いた限りでは)これについて正しいことをやっていますか? –

答えて

1

<link>要素(またはコマンドラインjavadocの-linkオプション)は、リンクの生成のみに役立ちますが、Javadocは以前の時点で停止します。未知の(共通の)クラスを参照すると、 。

この点で、JavadocはJavacと同じように動作します。使用するクラス、つまりクラスパスにある必要があります。 <classpath>要素を使用して、jarファイルまたはクラスディレクトリ、または<sourcepath>要素をポイントし、ソースを指すようにすることができます(コメントを継承する必要がある場合はこれを行います)。

これは標準APIへのリンクには必要ありません。これは既にコンパイラに含まれているためです。

このようにリンクすると、JavadocはこのURLからpackage-listをダウンロードする必要があります。代わりに、このパッケージリストファイルを含むローカルディレクトリを指すことができます。

+0

それはそれを修正しました。どうもありがとう。 –

関連する問題