diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2a47599..ed9e881 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -11,5 +11,5 @@ Create Documentation: - ./gradlew --no-daemon asciidoctor artifacts: paths: - - build/asciidoc/pdf/versabundus.pdf + - build/docs/asciidocPdf/versabundus.pdf diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 6f5cc0e..0000000 --- a/Jenkinsfile +++ /dev/null @@ -1,4 +0,0 @@ -@Library('ibtp-devops') _ - -gradle() { } - diff --git a/build.gradle b/build.gradle index 63d61a1..10b2fee 100644 --- a/build.gradle +++ b/build.gradle @@ -1,58 +1,140 @@ -buildscript { - repositories { - jcenter() - maven{ - url "https://plugins.gradle.org/m2/" - } - } - dependencies { - classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.7' - //classpath 'org.asciidoctor:asciidoctorj-epub3:1.5.0-alpha.6' - classpath ('org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.16') { - exclude group: 'org.jruby' - } - classpath 'org.jruby:jruby:9.1.17.0' - } +plugins { + id 'application' + id 'jacoco' + id "org.sonarqube" version "3.3" + id 'org.asciidoctor.jvm.pdf' version '3.3.0' + id 'org.asciidoctor.jvm.gems' version '3.3.0' + id 'maven-publish' } -apply plugin: 'org.asciidoctor.convert' -apply plugin: 'java' -apply plugin: 'project-report' - -repositories { +repositories { + jcenter() + ruby.gems() + mavenLocal() mavenCentral() + maven { + url "https://gitlab.thpeetz.de/api/v4/packages/maven" + name "GitLab" + } } -asciidoctorj { - version = '1.6.0-alpha.7' +dependencies { + asciidoctorGems 'rubygems:rouge:3.15.0' + implementation 'org.slf4j:slf4j-api:1.7.22' + testImplementation 'org.mockito:mockito-all:1.9.5' + testImplementation("org.junit.jupiter:junit-jupiter:5.8.2") + implementation 'ch.qos.logback:logback-core:1.1.2' + implementation 'ch.qos.logback:logback-classic:1.1.2' } -group 'com.ibtp.versabundus' -description = 'Project Versabundus: Implementierung von Rolit in Java' -version = '0.0.1-SNAPSHOT' +publishing { + publications { + library(MavenPublication) { + from components.java + } + } + repositories { + maven { + url "https://gitlab.thpeetz.de/api/v4/projects/27/packages/maven" + credentials(HttpHeaderCredentials) { + name = "Private-Token" + value = gitLabPrivateToken + } + authentication { + header(HttpHeaderAuthentication) + } + } + } +} final BUILD_DATE = new Date().format('dd.MM.yyyy').toString() +final MAIN_CLASS_NAME = 'com.thpeetz.versabundus.VersabundusApp' +group = 'de.thpeetz.versabundus' +sourceCompatibility = 1.8 -asciidoctor { - //backends 'html5', 'pdf', 'epub3', 'docbook' - backends 'html5', 'pdf' - attributes 'build-gradle': file('build.gradle'), - 'source-highlighter': 'coderay', - 'toc': 'left', - 'toc-title': 'Inhaltsverzeichnis', - 'revdate': BUILD_DATE, - 'revnumber': version, - 'idprefix': 'id_', - 'chapter-label': '', - 'icons': 'font', - 'setanchors': '', - 'idseparator': '-', - 'endpoint-url': 'http://www.ingenieurbuero-peetz.de', - 'imagesdir': './images', - 'docinfo1': '' +application { + mainClassName = MAIN_CLASS_NAME } +jar { + manifest { + attributes('Implementation-Title': 'Versabundus Application', 'Implementation-Version': version, 'Main-Class': MAIN_CLASS_NAME) + } +} + +tasks.named('test') { + useJUnitPlatform() +} + +jacocoTestReport { + reports { + xml.enabled true + } +} + +test.finalizedBy jacocoTestReport + +sonarqube { + properties { +// property "sonar.projectKey", "kontor_kontor-java_AX-dd-w3rXuu6JVRvr_g" + property "sonar.host.url", "https://sonar.thpeetz.de" +// property "sonar.login", "d39622f640a91f501b1e8a73d7d78c4fc412fc98" + property "sonar.qualitygate.wait", true + property "sonar.sourceEncoding", "UTF-8" + } +} + +tasks.named('sonarqube').configure { + dependsOn test +} + +//tasks.withType(Checkstyle) { +// ignoreFailures = true +// showViolations = false +// configFile = rootProject.file("config/checkstyle/checkstyle.xml") +// reports { +// xml.enabled true +// } +//} + +//tasks.withType(FindBugs) { +// ignoreFailures = true +// reports { +// xml.enabled true +// } +//} + +//pmd { +// ignoreFailures = true +//} + +asciidoctorPdf { + dependsOn asciidoctorGemsPrepare + + baseDirFollowsSourceFile() + + asciidoctorj { + requires 'rouge' + attributes 'build-gradle': file('build.gradle'), + 'endpoint-url': 'https://www.thpeetz.de', + 'source-highlighter': 'rouge', + 'imagesdir': './images', + 'toc': 'left', + 'toc-title': 'Inhaltsverzeichnis', + 'revdate': BUILD_DATE, + 'revnumber': '1.0.0', + 'revremark': 'Entwurf', + 'chapter-label': '', + 'icons': 'font', + 'idprefix': 'id_', + 'idseparator': '-', + 'docinfo1': '' + } +} + +task asciidoctor(dependsOn: asciidoctorPdf) +build.dependsOn(['asciidoctor']) + wrapper { - gradleVersion = "5.2" + gradleVersion = "6.3" } - diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..cc27fbe --- /dev/null +++ b/gradle.properties @@ -0,0 +1,2 @@ +description = 'Application Versabundus' +version=1.0.0-SNAPSHOT diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 5a7a6a1..a4b4429 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle b/settings.gradle index e109f33..d7054a3 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1 +1 @@ -rootProject.name="versabundus" +rootProject.name='versabundus' diff --git a/src/docs/asciidoc/versabundus.adoc b/src/docs/asciidoc/versabundus.adoc new file mode 100644 index 0000000..3ef0323 --- /dev/null +++ b/src/docs/asciidoc/versabundus.adoc @@ -0,0 +1,89 @@ += Projektbeschreibung versabundus: Pflichtenheft der Anwendung versabundus +:author: Thomas Peetz +:email: +:doctype: article +:sectnums: +:sectnumlevels: 4 +:toc: +:toclevels: 4 +:table-caption!: +:counter: table-number: 0 + + +//[title="Dokumenthistorie", caption="Tabelle {counter:table-number} ", id="Tabelle-{counter:table-number}", options="header"] +//[title="Dokumenthistorie", id="Table-{counter:table-number}", options="header", cols="4"] +[title="Dokumenthistorie", id="Table-{counter:table-number}", options="header"] +|=== +| Version | Datum | Autor | Änderungsgrund / Bemerkungen +| 0.0.1 | 07.10.2014 | Thomas Peetz | Ersterstellung +|=== + +== Einführung + +=== Zweck + +=== Stakeholder des Systems + +=== Systemumfang + +==== Zielsetzung des Systems + +=== Systemübersicht + +==== Systemkontext + +==== Systemarchitektur + +===== Systemkomponente 1 + +===== Systemkomponente 2 + +==== Systemschnittstellen + +===== Realisierte Schnittstellen + +===== Verwendete Schnittstellen + +==== Logisches Datenmodell + +==== Einschränkungen + +== Anforderungen der Domäne + +=== Systemfunktionen + +==== Anwendungsfälle + +==== Akteure + +==== Zielgruppen + +=== Anforderungen + +==== Anforderungen an externe Schnittstellen + +==== Funktionale Anforderungen + +==== Qualitätsanforderungen + +==== Randbedingungen + +==== Weitere Anforderungen + +==== Wartungs- und Supportinformationen + +=== Verifikation + +[bibliography] +== Referenzen + +[glossary] +== Glossar + +== Verzeichnisse + +=== Abbildungsverzeichnis + +=== Tabellenverzeichnis + +<> <>