Skip to content

Commit

Permalink
Improve dependency management
Browse files Browse the repository at this point in the history
  • Loading branch information
Miguel0888 committed Jan 19, 2025
1 parent 404a67f commit 44e791b
Show file tree
Hide file tree
Showing 7 changed files with 119 additions and 28 deletions.
42 changes: 15 additions & 27 deletions adapter/build.gradle
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
plugins {
id 'java'
id 'org.springframework.boot' version '2.5.14' // Letzte Java-8-kompatible Version
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
id 'com.github.johnrengelman.shadow' version '8.1.1' // Um alles in JARs zu verpacken
id 'org.springframework.boot'
id 'io.spring.dependency-management'
id 'com.github.johnrengelman.shadow'
}

group = 'selineer' // Package-Name
Expand All @@ -14,36 +14,24 @@ java {
}

dependencies {
// Spring Boot Starter (Java 8 kompatibel)
implementation 'org.springframework.boot:spring-boot-starter'

// implementation 'org.java-websocket:Java-WebSocket:1.6.0'
implementation 'org.java-websocket:Java-WebSocket:1.5.2'

implementation 'com.google.code.gson:gson:2.8.9'

implementation project(':cdp4j') // Abhängigkeit auf das cdp4j-Projekt
// Importiere die Plattform für zentrale Dependency Constraints
implementation platform(project(':dependency-platform'))

// chrome_devtools_protocol
// implementation 'org.netbeans.modules:org-netbeans-lib-chrome_devtools_protocol:RELEASE240'
// Lokale Projektabhängigkeiten
implementation project(':playwright')
implementation project(':cdp4j')

// // Chrome DevTools-Protokolls um WebDriver (verwendet Selenium) zu umgehen
// implementation 'io.webfolder:cdp4j:4.8.4'
// // Selenium WebDriver (Java 8 kompatibel)
// implementation 'org.seleniumhq.selenium:selenium-java:3.141.59'

// Optional: Lombok für weniger Boilerplate
// Abhängigkeiten ohne Versionsnummern (Versionen kommen aus der Plattform)
implementation 'org.springframework.boot:spring-boot-starter'
implementation 'org.java-websocket:Java-WebSocket'
implementation 'com.google.code.gson:gson'
// Optional: Lombok für Boilerplate-Reduktion
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

// // Optional: Apache Commons Lang (nützliche Hilfsklassen)
// implementation 'org.apache.commons:commons-lang3:3.12.0'

// // Optional: Google Guava (nützliche Sammlungen und Werkzeuge)
// implementation 'com.google.guava:guava:30.1.1-jre'

// Optional: JUnit für Tests
testImplementation 'junit:junit:4.13.2'
testImplementation 'junit:junit'
}

tasks.named('jar') {
Expand Down
55 changes: 55 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
plugins {
id 'java'
id 'org.springframework.boot'
id 'io.spring.dependency-management'
id 'com.github.johnrengelman.shadow'
}

// group = 'selineer' // Package-Name
// version = '1.0.0'

java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

dependencies {
// Importiere die Plattform für zentrale Dependency Constraints
implementation platform(project(':dependency-platform'))

// Lokale Projektabhängigkeiten
implementation project(':playwright')
implementation project(':cdp4j')
implementation project(':adapter')

// Abhängigkeiten ohne Versionsnummern (Versionen kommen aus der Plattform)
implementation 'org.springframework.boot:spring-boot-starter'
implementation 'org.java-websocket:Java-WebSocket'
implementation 'com.google.code.gson:gson'

// Optional: Lombok für Boilerplate-Reduktion
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

// Optional: JUnit für Tests
testImplementation 'junit:junit'
}

// tasks.named('jar') {
// manifest {
// attributes(
// // Vermeide Aufrufkonventionen wie "java -cp o.jar selineer.Main"
// // Stattdessen: "java -jar o.jar"
// 'Main-Class': 'selineer.app.Main' // Manifest-Eintrag
// )
// }
// }

// Für Start mit Spring Boot:
// tasks.named('bootJar') {
// manifest {
// attributes(
// 'Main-Class': 'org.springframework.boot.loader.PropertiesLauncher'
// )
// }
// }
Empty file removed cdp4j/settings.gradle
Empty file.
27 changes: 27 additions & 0 deletions dependency-platform/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
plugins {
id 'java-platform'
}

javaPlatform {
allowDependencies() // Erlaubt die Nutzung von externen BOMs (optional)
}

dependencies {
// Spring Boot BOM (optional)
api platform('org.springframework.boot:spring-boot-dependencies:2.5.14')

constraints {
// Abhängigkeiten aus dem `adapter`-Projekt
api 'org.springframework.boot:spring-boot-starter:2.5.14'
api 'org.java-websocket:Java-WebSocket:1.5.2'
api 'com.google.code.gson:gson:2.8.9'
api 'junit:junit:4.13.2'
api 'org.projectlombok:lombok:1.18.28'

// Weitere optionale Abhängigkeiten auskommentiert in `adapter`
// api 'org.apache.commons:commons-lang3:3.12.0'
// api 'com.google.guava:guava:30.1.1-jre'
// api 'io.webfolder:cdp4j:4.8.4'
// api 'org.seleniumhq.selenium:selenium-java:3.141.59'
}
}
8 changes: 8 additions & 0 deletions playwright/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
plugins {
id 'java'
}

java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
Empty file removed playwright/src/main/resources
Empty file.
15 changes: 14 additions & 1 deletion settings.gradle
Original file line number Diff line number Diff line change
@@ -1,6 +1,19 @@
pluginManagement {
plugins {
id 'org.springframework.boot' version '2.5.14'
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
id 'com.github.johnrengelman.shadow' version '8.1.1'
}

repositories {
gradlePluginPortal()
}
}

rootProject.name = 'Selineer'

include 'adapter', 'cdp4j'
include 'dependency-platform'
include 'playwright', 'cdp4j', 'adapter', 'app'



0 comments on commit 44e791b

Please sign in to comment.