diffplug / diffplug/goomph

bndautomanifest (Java 9 module -> OSGi)

オープン
#29 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
enhancement
主要言語
Java
スター
137
フォーク
33
PR マージ指標
30日以内にマージされた PR はありません

説明

In gradle 3.4, there is now [support for separate api and implementation dependencies](https://docs.gradle.org/current/userguide/java_library_plugin.html).

```gradle
dependencies {
api 'commons-httpclient:commons-httpclient:3.1'
implementation 'org.apache.commons:commons-lang3:3.5'
}
```

Soon (Q2 2017), it will also [support declaring which packages are API](https://discuss.gradle.org/t/will-java-library-get-support-for-declaring-api-packages/21845).

```gradle
api {
exports 'com.somepackage'
}
```

Once this ships, we will create a plugin, `osgi.bndautomanifest`, which will use this metadata to automatically configure `osgi.bndmanifest`.

This way any library with Java 9 module metadata can easily support OSGi. Also, the `api` and `implementation` separation allows gradle to enforce that the implementation details aren't accidentally leaking into the api.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず、issue で説明されている Gradle Java Library Plugin のメタデータを確認します。これには api と implementation の依存関係、および提案されている api exports 宣言が含まれます。次に、osgi.bndmanifest が現在どのように構成されているかを調べます;利用可能な Java 9 モジュールメタデータをその構成に変換する新しい osgi.bndautomanifest プラグインができれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
build-system
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
20/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。