Rework moduleDependencies, no longer manually generate POM

This commit is contained in:
Johannes Frohnmeyer 2022-08-21 14:00:46 +00:00
parent 6df15e7638
commit 1e1554597c
1 changed files with 12 additions and 54 deletions

View File

@ -33,45 +33,6 @@ apply plugin: org.ajoberstar.grgit.gradle.GrgitPlugin
enum VersionType { release, beta, alpha }
static Node getOrCreateNode(Node node, String name) {
Node dependencies = null
for(Node n : node) {
if(name == n.name()) {
dependencies = n
break
}
}
if(dependencies == null) {
dependencies = node.appendNode(name)
}
return dependencies
}
ext.moduleDependencies = { Project project, List<String> depNames ->
def deps = depNames.iterator().collect { project.dependencies.project(path: ":$it", configuration: 'dev') }
project.dependencies {
deps.each {
api it
}
}
project.publishing {
publications {
mavenJava(MavenPublication) {
pom.withXml {
def depsNode = getOrCreateNode(asNode(), "dependencies")
deps.each {
def depNode = depsNode.appendNode("dependency")
depNode.appendNode("groupId", it.group)
depNode.appendNode("artifactId", it.name)
depNode.appendNode("version", it.version)
depNode.appendNode("scope", "compile")
}
}
}
}
}
}
// Fetch changelog
def changelogStr = ""
ext.currentVer = "0.0.0+nogit"
@ -298,23 +259,12 @@ allprojects {
artifact(sourcesJar) {
builtBy remapSourcesJar
}
pom.withXml {
def depsNode = getOrCreateNode(asNode(), "dependencies")
subprojects.each {
def depNode = depsNode.appendNode("dependency")
depNode.appendNode("groupId", it.group)
depNode.appendNode("artifactId", it.name)
depNode.appendNode("version", it.version)
depNode.appendNode("scope", "compile")
}
}
}
}
repositories {
mavenLocal()
if (project.hasProperty("maven")) {
maven {
url = project.getProperty("maven")
@ -332,12 +282,20 @@ allprojects {
}
}
loom.disableDeprecatedPomGeneration(publishing.publications.mavenJava)
tasks.publish.dependsOn(tasks.build)
rootProject.tasks.deployDebug.dependsOn(tasks.publish)
ext.moduleDependencies = { Project project, List<String> depNames ->
project.dependencies {
depNames.each {
api project.dependencies.project(path: ":$it", configuration: "shadow")
}
}
}
}
ext.devOnlyModules = project.hasProperty("dev_only_module") ? project.getProperty("dev_only_module").split(", ") : []
subprojects {
javadoc.enabled = false
@ -355,7 +313,7 @@ subprojects {
api project(path: project.path, configuration: "shadow")
clientImplementation project.sourceSets.client.output
if (!rootProject.hasProperty("dev_only_module") || !(project.name in rootProject.getProperty("dev_only_module").split(", "))) {
if (!(project.name in rootProject.devOnlyModules)) {
include project
}