2016-09-17 10 views
0

sbt-unidocプラグインを使用して化合物APIドキュメントを作成しています。私はGitHubのさまざまなプロジェクトに、sbtのRootProjectコンストラクタとURIを使ってリンクしています。sbt-unidoc - RootProjectからサブモジュールを除外する方法

これらのプロジェクトの一つは、相互に排他的なサブプロジェクトがあります。

、このプロジェクトfooの中で、同じタイプを含むが、異なるに対して構築されている2つのサブモジュール foo-db1foo-db2は、あるさ
val foo = RootProject(uri("git://github.com/Foo/Bar.git#v1.0.0")) 

依存関係ライブラリのバージョン

unidocを実行しようとすると、タイプがunidocの観点から2回定義されているため、失敗します。ドキュメントから、私はフィルタ機能があります見ることができます:

unidocProjectFilter in (ScalaUnidoc, unidoc) := inAnyProject -- inProjects(app) 

しかしどのように私は私のRootProjectからサブモジュールの識別子を作成するのですか?

unidocProjectFilter in (ScalaUnidoc, unidoc) := inAnyProject -- 
    inProjects(foo).SELECT_SUB_PROJECT(foo-v1) 

: 言い換えれば、どのように私はこれを行うだろうか?

答えて

1

答えはthis entryです。RootProjectを使用する代わりに、ProjectRefのインスタンスを作成します。集計にのみfooDb2を入れてfooDb1アウトを残して、任意の効果を持っていないことを

import UnidocKeys._ 

val fooURI = uri("git://github.com/Foo/Bar.git#v1.0.0") 
val fooDb1 = ProjectRef(fooURI, "foo-db1") // sub-module I don't want 
val fooDb2 = ProjectRef(fooURI, "foo-db2") // sub-module I want 

val root = (project in file(".")) 
    .settings(...) 
    .settings(unidocSettings: _*) 
    .settings(site.settings ++ ghpages.settings: _*) 
    .settings(
    unidocProjectFilter in (ScalaUnidoc, unidoc) := 
     inAnyProject -- inProjects(fooDb1) 
) 
    .aggregate(fooDb2) 

注意。 unidocには常にサブモジュールがすべて含まれているようですので、集計に表示されていなくても明示的にプロジェクトを削除するにはunidocProjectFilterを使用する必要があります。

関連する問題