From 4287dbdd8a54737474936afb32cffc3662b07cf1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Juan=20Farr=C3=A9?=
<13270880+jafarre-bi@users.noreply.github.com>
Date: Mon, 23 Mar 2026 12:18:31 +0100
Subject: [PATCH] Add an opt-out for the separator newline
---
.../maven/plugins/shade/resource/AppendingTransformer.java | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/main/java/org/apache/maven/plugins/shade/resource/AppendingTransformer.java b/src/main/java/org/apache/maven/plugins/shade/resource/AppendingTransformer.java
index 71fa4684..28ac3a95 100644
--- a/src/main/java/org/apache/maven/plugins/shade/resource/AppendingTransformer.java
+++ b/src/main/java/org/apache/maven/plugins/shade/resource/AppendingTransformer.java
@@ -30,9 +30,11 @@
/**
* A resource processor that appends content for a resource, separated by a newline.
+ * The newline separator can be disabled with {@code false}.
*/
public class AppendingTransformer extends AbstractCompatibilityTransformer {
String resource;
+ boolean separator = true;
ByteArrayOutputStream data = new ByteArrayOutputStream();
@@ -47,7 +49,9 @@ public boolean canTransformResource(String r) {
public void processResource(String resource, InputStream is, List relocators, long time)
throws IOException {
IOUtil.copy(is, data);
- data.write('\n');
+ if (separator || !data.toString().endsWith("\n")) {
+ data.write('\n');
+ }
if (time > this.time) {
this.time = time;
}