---
id: Gradle Convention Plugins
aliases: []
tags:
  - process/lightning_talk
status: Archiv
subtitle: Project Board
type: Archiv
lecture_date: 2024-02-16
---
>[!info]- Projekt
>Goal:: [[Lightning Talks]]
>Progress:: `$= dv.view('project-progress', {file: 'Gradle Convention Plugins'})`
>Target:: `$= dv.view('project-target', {file: 'Gradle Convention Plugins'})`
>Bar:: `$= dv.view('project-progress-bar', {file: 'Gradle Convention Plugins'})`
>Tasks:: `$= const aufgaben = dv.page('Gradle Convention Plugins').file.inlinks.where(t => { const mt = dv.page(t.path); return mt.tags?.includes('process/task') && mt.status === 'In Arbeit'}); if (aufgaben.length > 0) { dv.header(4, aufgaben.length > 1 ? "Aufgaben" : "Aufgabe"); dv.list(aufgaben) }`

## Project Info

  Vortrag gehalten am [[2024-02-16 Lightning Talks]]

## Thoughts

- Vorstellung von Gradle
    - Plugin System
    - Convention Plugins
- Convention Plugins
    - eingebettete Plugins
- Plugin Projekte
    - Aufbau von Plugin Projekten
    - Einbindung von externen Plugins 
    - Verteilung von Plugins
    - Verwendung von Credentials
- Plugin Management
    - lokale Definition
    - globale Definition
    - Initialisierung Skripte
    - `. gradle/init.d/init.gradle`

## Resources
- [[Converting Gradle convention plugins to binary plugins]]
- [[Sharing convention plugins with build logic]]
- [[Sharing build logic between subprojects Sample]]

## Github Repository
[[convention-plugins]]
A collection of Gradle convention plugins for Java and Asciidoctor builds.
## Review questions


## Aufgaben
- [x] Vortrag Gradle Convention Plugins ausarbeiten  [start:: 2024-02-13]  [scheduled:: 2024-02-16]  [due:: 2024-02-16]  [completion:: 2024-02-16]
- [x] Vortrag Gradle Convention Plugins halten  [scheduled:: 2024-02-16]  [completion:: 2024-02-16]


## Offene Aufgaben
```dataviewjs
const pages = dv.current().file.inlinks.where(p => dv.page(p.path).tags?.includes('process/task')).where(p => dv.page(p.path).file.tasks.length != dv.page(p.path).file.tasks.where(t => t.fullyCompleted === true).length);

dv.table(["Project", "Status", "Completed", "Tasks"], pages.map(p => {
	const page = dv.page(p.path);
	const tasks = page.file.tasks;
   	return [
   		page.file.link,
   		page.status,
   		tasks.where(t => t.fullyCompleted === true).length,
   		tasks.length
   	]
}));
```

## Aufgaben
```dataviewjs
const pages = dv.current().file.inlinks.where(p => dv.page(p.path).tags?.includes('process/task'));

dv.table(["Project", "Status", "Completed", "Tasks"], pages.map(p => {
	const page = dv.page(p.path);
	const tasks = page.file.tasks;
	return [
		page.file.link,
		page.status,
		tasks.where(t => t.fullyCompleted === true).length,
		tasks.length
	]
}));
```
