2012-03-14 14 views
11

利用可能なソースもjavadocのアーティファクトも持たないアーティファクトXを使用する必要があります。しかし、私は、X用のjavadocが公開されている外部Webサーバーを知っています。 「プレーン」Eclipseで外部javadocウェブサイトをartifactに接続するには、m2e(Eclipse用Mavenプラグイン)のヒントを教えてください。

私は、ビルド・パスにjarファイルのJavadoc場所としてURLを添付することができ、その後、シフト - F2は、そのURLにブラウザを開きます。

私は、m2eがMaven Centralから成果物を変更することなく、成果物Xに対して自動的に同じことをしたいと思います。このことを示す

サンプルのpom.xml:私はこれをヒントにはどうすればよい

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>foo</groupId> 
    <artifactId>m2e-javadoc</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 

    <properties> 
     <project.build.sourceEncoding>ASCII</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>net.sf.jt400</groupId> 
      <artifactId>jt400-full</artifactId> 
      <version>5.0</version> 
     </dependency> 
    </dependencies> 

</project> 


EDIT:ローカルリポジトリに欠けている成果物をインストールしてプロジェクトを持つにあきらめいくつかの実験後のMavenのリリースを行い、I:質問がhttp://dev.eclipse.org/mhonarc/lists/m2e-users/msg02386.html


EDITでのM2eメーリングリストで尋ねてきましたMaven Centralに最新バージョン(7.10)を再パッケージ化しました。

+0

「ソースもjavadocも利用できません」と言うと、javadocもソースも利用できない、またはソースまたはjavadocがローカルのリポジトリにないことを意味しますか?ソースがローカルリポジトリにある場合、mavenはそれらを自動的に認識します。 –

+0

@MatthewFarwell中央ではなく、ローカルではありません。これは非常に頻繁に起こります。特に、メイベージ化されていない古いプロジェクトでは、結果はセントラルにプッシュされます。ソースリポジトリ内の単純なソリューションが必要です。 –

答えて

2

作成者が特定のアーティファクトに対して適切なアーティファクト(-sourcesおよび-javadoc)を作成しなかった場合、残念ながらそれは機能しません。しかし、特定のアーティファクトのjavadocを手動で追加できるはずです。私は独立したパッケージ(artifact-javadoc)を作成し、それをあなたのリポジトリマネージャーに配布して、自動的に動作させるべきです。

+0

これはまさに私がしたくないことです。他の場所に見えるようにm2eを設定することができれば、それは問題ありません。 –

+1

私はこの答えがOPのやりたいことではないことを知っていますが、Mavenのバージョン管理機能を使用してアーティファクトJARとjavadoc/sourceを同期して保持するため、IMOは正しい答えです。それ以外の場合は、JARにv2.0.0を使用し、v2.1.0 Javadoc/Sourceを調べることができます。公表されたWebサイトからJavadoc JARを作成するためのスクリプトが役に立つと思っています... – HDave

2

あなたのPOMを増強することによってthis scenarioためMaven Javadoc Pluginを使用することができます。

あなたは パラメータを使用して、外部のプロジェクトへの相互参照リンクを追加することができます。例えば:

<project> 
    ... 
    <reporting> (or <build>) 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-javadoc-plugin</artifactId> 
     <version>2.8.1</version> 
     <configuration> 
      <links> 
      <link>http://commons.apache.org/dbcp/apidocs/</link> 
      <link>http://commons.apache.org/fileupload/apidocs/</link> 
      </links> 
      ... 
     </configuration> 
     </plugin> 
    </plugins> 
    </reporting> (or </build>) 
    ... 
</project> 

重要な注意:Javadocの仕様に応じて、フェッチ可能/ package-listファイルを持っている必要があり 与えられたすべてのリンク。

この戦略は、さらに必要に応じて同じドキュメントツリーにあなたのドキュメントを統合し<offlineLinks/>パラメータとaggregate goalを使用することにより増強することができます。

documentation for Maven Javadoc Pluginは、別のJavadoc機能を含む追加のシナリオと例を提供しています。

+0

m2eがこのヒントを拾うことをクイックテストで示していませんでした。 Shift-F2では、JARファイルにjavadocが添付されていないと表示されます。実際にこれを試しましたか? –

+0

@ThorbjørnRavnAndersen私は持っています。私が理解していることから、Mavenの目標 'javadoc:javadoc'または' javadoc:aggregate'を端末で少なくとも一回は実行し、プロジェクトの_Javadoc Location_を生成されたドキュメントに設定する必要があります( '$ PROJECT/target/site/apidocs')を使ってこの作業を行います。目立たないですが、私の知る限り、Maven Javadocプラグインはこれを行うための標準的なMaven化された方法です。 – MrGomez

+0

提案されたメソッドは、自分自身で外部javadocでマージすることができますが、実際に必要なものではありません。 –

関連する問題