Skip to content

Commit 672c2ac

Browse files
committed
Removed the need for settings.gradle.kts & Embedding maven repo
1 parent cdec594 commit 672c2ac

File tree

6 files changed

+54
-17
lines changed

6 files changed

+54
-17
lines changed

app/build.gradle.kts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,9 +301,15 @@ afterEvaluate{
301301
}
302302
dependsOn("packageSnap", "zipDistributable")
303303
}
304+
tasks.named("prepareAppResources").configure {
305+
dependsOn(
306+
":core:publishAllPublicationsToAppRepository",
307+
":java:gradle:publishAllPublicationsToAppRepository",
308+
":java:preprocessor:publishAllPublicationsToAppRepository"
309+
)
310+
}
304311
}
305312

306-
307313
// LEGACY TASKS
308314
// Most of these are shims to be compatible with the old build system
309315
// They should be removed in the future, as we work towards making things more Gradle-native

app/src/processing/app/gradle/GradleService.kt

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@ import org.gradle.tooling.events.task.TaskFinishEvent
1111
import org.gradle.tooling.events.task.TaskStartEvent
1212
import processing.app.Base
1313
import processing.app.Messages
14+
import processing.app.Platform
1415
import processing.app.ui.Editor
1516
import java.io.File
1617
import javax.swing.SwingUtilities
1718
import javax.swing.event.DocumentEvent
1819
import javax.swing.event.DocumentListener
20+
import kotlin.io.path.writeText
1921

2022
// TODO: Embed the core, gradle plugin, and preprocessor in a custom .m2 repository
2123
// Right now the gradle service only works if you publish those to the local maven repository
@@ -137,33 +139,42 @@ class GradleService(val editor: Editor) {
137139
// TODO: Research if we can generate these programmatically
138140
// Ideally they would not be placed into the sketch folder
139141

142+
val initGradle = kotlin.io.path.createTempDirectory().resolve("init.gradle.kts").apply {
143+
val content = """
144+
beforeSettings{
145+
pluginManagement {
146+
repositories {
147+
maven { url = uri("${Platform.getContentFile("repository").absolutePath}") }
148+
//mavenLocal()
149+
gradlePluginPortal()
150+
}
151+
}
152+
}
153+
""".trimIndent()
154+
155+
writeText(content)
156+
}
157+
140158
val buildGradle = folder.resolve("build.gradle.kts")
159+
// TODO: Manage script if the comment exists
141160
if(!buildGradle.exists()){
142161
Messages.log("build.gradle.kts not found in ${folder}, creating one")
143162
// TODO: Allow for other plugins to be registered
163+
// TODO: Allow for the whole configuration to be overridden
144164
val content = """
165+
// Managed by: Processing ${Base.getVersionName()}
166+
// If you delete this comment Processing will no longer update the build scripts
167+
145168
plugins{
146169
id("processing.java.gradle") version "${Base.getVersionName()}"
147170
}
148171
""".trimIndent()
149172
buildGradle.writeText(content)
150173
}
151174

152-
val settingsGradle = folder.resolve("settings.gradle.kts")
153-
if(!settingsGradle.exists()){
154-
Messages.log("settings.gradle.kts not found in ${folder}, creating one")
155-
val content = """
156-
pluginManagement {
157-
repositories {
158-
mavenLocal()
159-
mavenCentral()
160-
}
161-
}
162-
""".trimIndent()
163-
settingsGradle.writeText(content)
164-
}
165-
166175
return this.newBuild()
176+
// .setJavaHome(Platform.getJavaHome())
177+
.withArguments("--init-script", initGradle.toAbsolutePath().toString())
167178
.addProgressListener(ProgressListener { event ->
168179
val name = event.descriptor.name
169180
if(event is TaskStartEvent) {
@@ -179,6 +190,5 @@ class GradleService(val editor: Editor) {
179190
setStandardOutput(System.out)
180191
}
181192
}
182-
// .setJavaHome(Platform.getJavaHome())
183193
}
184194
}

core/build.gradle.kts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,14 @@ dependencies {
3434

3535
testImplementation(libs.junit)
3636
}
37+
publishing{
38+
repositories{
39+
maven {
40+
name = "App"
41+
url = uri(project(":app").layout.buildDirectory.dir("resources-bundled/common/repository").get().asFile.absolutePath)
42+
}
43+
}
44+
}
3745

3846
mavenPublishing{
3947
publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL)

java/gradle/build.gradle.kts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,9 @@ gradlePlugin{
3030
publishing{
3131
repositories{
3232
mavenLocal()
33+
maven {
34+
name = "App"
35+
url = uri(project(":app").layout.buildDirectory.dir("resources-bundled/common/repository").get().asFile.absolutePath)
36+
}
3337
}
3438
}

java/preprocessor/build.gradle.kts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,15 @@ dependencies{
3535
implementation(libs.antlr4Runtime)
3636
}
3737

38+
publishing{
39+
repositories{
40+
maven {
41+
name = "App"
42+
url = uri(project(":app").layout.buildDirectory.dir("resources-bundled/common/repository").get().asFile.absolutePath)
43+
}
44+
}
45+
}
46+
3847
mavenPublishing{
3948
publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL)
4049
signAllPublications()

settings.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ include(
1212
"java:libraries:pdf",
1313
"java:libraries:serial",
1414
"java:libraries:svg",
15-
)
15+
)

0 commit comments

Comments
 (0)