bndautomanifest (Java 9 module -> OSGi)
- Vorherrschende Sprache
- Java
- Sterne
- 137
- Forks
- 33
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
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.
Beitragsleitfaden
Rechercherichtung
Beginnen Sie mit der Überprüfung der im Issue beschriebenen Metadaten des Gradle Java Library Plugin, einschließlich der api- und implementation-Abhängigkeiten sowie der vorgeschlagenen api exports-Deklaration. Untersuchen Sie anschließend, wie osgi.bndmanifest derzeit konfiguriert ist; abgeschlossen wäre dies mit einem neuen osgi.bndautomanifest-Plugin, das die verfügbaren Java 9-Modulmetadaten in diese Konfiguration umwandelt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- build-system
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 20/100