This is an automated email from the ASF dual-hosted git repository.

tballison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tika.git


The following commit(s) were added to refs/heads/main by this push:
     new a9b2a86bed TIKA-4723 (#2809)
a9b2a86bed is described below

commit a9b2a86bedd30990ab76fe523b79684e51811f47
Author: Tim Allison <[email protected]>
AuthorDate: Tue May 12 15:36:43 2026 -0400

    TIKA-4723 (#2809)
---
 docs/modules/ROOT/nav.adoc                         |   5 +
 .../pages/maintainers/release-guides/index.adoc    |   1 +
 .../release-guides/release-artifacts.adoc          | 230 +++++++++++++++++++++
 pom.xml                                            |  13 +-
 tika-grpc/README.md                                |  18 ++
 tika-grpc/pom.xml                                  |  87 +++++---
 .../apache/tika/pipes/grpc/TikaGrpcServerImpl.java |   9 +
 .../tika-parser-scientific-package/pom.xml         |  55 +++++
 .../tika-parser-sqlite3-package/pom.xml            |  50 +++++
 .../tika-parser-nlp-package/pom.xml                |  10 +
 .../tika-pipes-atlassian-jwt/pom.xml               |  29 +++
 .../tika-pipes-plugins/tika-pipes-az-blob/pom.xml  |  29 +++
 .../tika-pipes-plugins/tika-pipes-csv/pom.xml      |  29 +++
 .../tika-pipes-plugins/tika-pipes-es/pom.xml       |  29 +++
 .../tika-pipes-file-system/pom.xml                 |  29 +++
 .../tika-pipes-plugins/tika-pipes-gcs/pom.xml      |  29 +++
 .../tika-pipes-google-drive/pom.xml                |  29 +++
 .../tika-pipes-plugins/tika-pipes-http/pom.xml     |  33 +++
 .../tika-pipes-plugins/tika-pipes-jdbc/pom.xml     |  29 +++
 .../tika-pipes-plugins/tika-pipes-json/pom.xml     |  29 +++
 .../tika-pipes-plugins/tika-pipes-kafka/pom.xml    |  29 +++
 .../tika-pipes-microsoft-graph/pom.xml             |  29 +++
 .../tika-pipes-opensearch/pom.xml                  |  29 +++
 .../tika-pipes-plugins/tika-pipes-s3/pom.xml       |  29 +++
 .../tika-pipes-plugins/tika-pipes-solr/pom.xml     |  29 +++
 tika-serialization/pom.xml                         |   6 -
 26 files changed, 878 insertions(+), 45 deletions(-)

diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index 7ed0d89a5a..5e29f171d1 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -80,3 +80,8 @@
 * xref:maintainers/index.adoc[Maintainers]
 ** xref:maintainers/site.adoc[Publishing the Site]
 ** xref:maintainers/release-guides/index.adoc[Release Guides]
+*** xref:maintainers/release-guides/tika.adoc[Releasing Apache Tika]
+*** xref:maintainers/release-guides/release-artifacts.adoc[Release Artifacts: 
What Goes Where]
+*** xref:maintainers/release-guides/docker.adoc[Releasing Tika Docker Images]
+*** xref:maintainers/release-guides/helm.adoc[Releasing Tika Helm Charts]
+*** xref:maintainers/release-guides/grpc.adoc[Releasing Tika gRPC]
diff --git a/docs/modules/ROOT/pages/maintainers/release-guides/index.adoc 
b/docs/modules/ROOT/pages/maintainers/release-guides/index.adoc
index 1f7937ba77..84aac06a2b 100644
--- a/docs/modules/ROOT/pages/maintainers/release-guides/index.adoc
+++ b/docs/modules/ROOT/pages/maintainers/release-guides/index.adoc
@@ -27,6 +27,7 @@ step-by-step guides for releasing the various Tika components.
 == Topics
 
 * xref:maintainers/release-guides/tika.adoc[Releasing Apache Tika] - Main Tika 
project release process
+* xref:maintainers/release-guides/release-artifacts.adoc[Release Artifacts: 
What Goes Where] - Maven Central vs Apache dist vs Docker matrix
 * xref:maintainers/release-guides/docker.adoc[Releasing Tika Docker Images] - 
Docker image release process
 * xref:maintainers/release-guides/helm.adoc[Releasing Tika Helm Charts] - Helm 
chart release process
 * xref:maintainers/release-guides/grpc.adoc[Releasing Tika gRPC] - gRPC 
component release process
diff --git 
a/docs/modules/ROOT/pages/maintainers/release-guides/release-artifacts.adoc 
b/docs/modules/ROOT/pages/maintainers/release-guides/release-artifacts.adoc
new file mode 100644
index 0000000000..49c2f187b9
--- /dev/null
+++ b/docs/modules/ROOT/pages/maintainers/release-guides/release-artifacts.adoc
@@ -0,0 +1,230 @@
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements.  See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License.  You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+
+= Release Artifacts: What Goes Where
+
+A 4.x Tika release publishes to three channels, each with a different
+audience:
+
+[cols="1,2,2", options="header"]
+|===
+|Channel |URL |Audience
+
+|*Maven Central*
+|`https://repo1.maven.org/maven2/org/apache/tika/`
+|Java consumers adding Tika to a Maven / Gradle build. Get lean basic jars
+plus pom + sources-jar + javadoc-jar. Maven resolves transitive deps for
+them.
+
+|*Apache dist*
+|`https://downloads.apache.org/tika/<version>/`
+|Humans downloading runnable archives or drop-in plugin zips. No Maven
+involved. Want fat / self-contained artifacts.
+
+|*Docker Hub*
+|`apache/tika`, `apache/tika-grpc`
+|Container deployers. Get a ready-to-run image with parsers + plugins
+bundled (the "kitchen sink" by default).
+|===
+
+The driving principle: *fat distribution artifacts (zips, shaded jars,
+runnable bundles) do not go to Maven Central; basic Maven artifacts (slim
+jars + pom) do not need to clutter Apache dist.* Channel-specific shapes
+keep each ecosystem clean.
+
+== Per-artifact matrix
+
+[cols="1,1,1,1,1", options="header"]
+|===
+|Artifact |Maven Central |Apache dist |Docker `apache/tika` |Docker 
`apache/tika-grpc`
+
+|`tika-core`, `tika-parsers-*` jars (each module)
+|✓ slim jar (Maven-native)
+|—
+|inside the image
+|inside the image
+
+|`tika-app-<v>.zip` (CLI + GUI)
+|✓ slim jar
+|✓ assembly zip (slim jar + `lib/` deps)
+|—
+|—
+
+|`tika-server-standard-<v>.jar` (slim runtime jar)
+|✓ slim jar
+|—
+|—
+|—
+
+|`tika-server-standard-<v>-bin.zip` (full distribution)
+|—
+|✓
+|extracted into image
+|—
+
+|`tika-eval-app-<v>.zip` (eval CLI)
+|✓ slim jar
+|✓ assembly zip (slim jar + `lib/` deps)
+|—
+|—
+
+|`tika-parser-scientific-package`, `tika-parser-sqlite3-package`, 
`tika-parser-nlp-package`
+|✓ slim jar (~10 KB, metadata)
+|✓ `-shaded.jar` (~20–25 MB, full deps)
+|inside the image
+|inside the image
+
+|`tika-pipes-<plugin>` (each — solr, http, s3, kafka, …)
+|✓ slim jar
+|✓ pf4j zip distribution
+|inside the image
+|inside the image
+
+|`tika-grpc-<v>.jar` (slim)
+|✓
+|—
+|—
+|inside the image
+
+|`tika-grpc-<v>.zip` (Docker build artifact)
+|✗ not attached (TIKA-4723: `<attach>false</attach>`)
+|—
+|—
+|build context for the image
+
+|`src.zip`, `KEYS`, `CHANGES-<v>.txt`
+|—
+|✓
+|—
+|—
+|===
+
+== Why each shape
+
+=== Slim vs shaded jars (parser packages)
+
+`tika-parser-scientific-package` (and `sqlite3`, `nlp`) are
+"drop-in classpath" artifacts. Sysadmins running `tika-server` who want a
+parser added to its classpath grab one fat jar and `cp` it into
+`/tika-extras/`. That's the use case the *shaded* jar serves on Apache dist.
+
+A Maven consumer wanting the same parsers does *not* want a 25 MB jar
+shaded over their classpath — Maven's transitive dep resolution gives them
+the same classes via the module jar + its deps. So Central gets the slim
+(~10 KB) metadata jar; `pom` transitive deps do the work.
+
+Mechanism: `maven-shade-plugin` configured with
+`<outputFile>${project.build.directory}/${project.artifactId}-${project.version}-shaded.jar</outputFile>`
+and `<shadedArtifactAttached>false</shadedArtifactAttached>`. Shade writes
+the fat jar to a separate file on disk but does not attach it to the
+Maven artifact set, so `mvn deploy` only uploads the slim main jar.
+
+=== pf4j plugin zips (`tika-pipes-*`)
+
+The `.zip` for each pipes plugin is the runtime drop-in form: unzip into
+`<server>/plugins/<plugin-name>/` and pf4j discovers it at startup. That's
+an Apache dist artifact, not a Maven artifact.
+
+The plugin's *jar* is on Maven Central for users building atop the plugin
+API or embedding it programmatically.
+
+Mechanism: `maven-assembly-plugin` with `<attach>false</attach>` in each
+plugin pom (TIKA-4723). Because `<attach>false</attach>` also skips the
+local-repo install, each plugin pom additionally runs
+`maven-install-plugin:install-file` during the `install` phase, writing
+the zip into the local repo at canonical coordinates
+(`<groupId>:<artifactId>:zip:<version>`). Sibling modules
+(`tika-pipes-fork-parser`, `tika-server-*`, `tika-grpc`, integration
+tests) declare the zip as a test-scope Maven dep and rely on this
+mechanism to resolve it from the local repo without ever publishing it
+to Central.
+
+=== tika-grpc
+
+tika-grpc is a standalone gRPC server, parallel to tika-server — not built
+on top of `tika-server-core`. It depends directly on `tika-core` and the
+parser modules (via `tika-parsers-standard-package`).
+
+Maven Central gets the slim `tika-grpc.jar` for users embedding the gRPC
+server in a Maven build. Apache dist publishes nothing for tika-grpc.
+Users either pull `apache/tika-grpc` from Docker Hub or add `tika-grpc`
+as a Maven dep.
+
+The Docker image is built by the release workflow from a `-Pdocker`
+Maven invocation that produces a runnable layout (jar + deps + bundled
+plugins) locally; that build output is the build context for the
+`apache/tika-grpc` image and isn't published as a release artifact in its
+own right.
+
+tika-grpc requires at least one pf4j plugin to be loaded at startup; an
+empty `plugins/` directory triggers a `TikaConfigException` with a
+download URL pointing at Apache dist.
+
+=== Server: slim jar on Central, bin.zip on dist
+
+`tika-server-standard-<v>.jar` is the *slim* runtime jar — its manifest
+declares `Class-Path: lib/*` and it expects to be run from a directory
+that also contains a populated `lib/` (and `plugins/`). Standalone the
+slim jar can't run. Maven Central publishes it for embedders who'll
+resolve `lib/*` via Maven dep resolution.
+
+`tika-server-standard-<v>-bin.zip` is the full assembled distribution:
+the slim jar + `lib/` + the bundled `tika-pipes-file-system` plugin + a
+startup script. Apache dist publishes this for sysadmins who want
+`unzip + java -jar`.
+
+The 4.0.0-alpha-1 release published *both* on dist; 4.x onwards drops the
+slim jar from dist (only on Central) and drops the `-bin.tgz` variant
+(`.zip` is universally readable).
+
+=== App / eval-app
+
+Same pattern as the parser packages — Central gets the slim jar (Maven
+consumers); dist gets the assembled zip with deps under `lib/`.
+
+== Where this is configured in the source tree
+
+*The Apache dist staging include list:* `pom.xml`, `apache-release`
+profile, the `<copy>` step inside the antrun task (look for `tika-app`
+near the top). One `<include>` line per artifact pattern. The
+`tika-pipes-plugins/*/target/*-shaded.jar*` and similar globs cover the
+sets.
+
+*Per-module shaping:* each module's pom decides what shape its `target/`
+produces (assembly with `<attach>false</attach>` for plugin zips and
+app zips; shade with `outputFile` + 
`<shadedArtifactAttached>false</shadedArtifactAttached>`
+for parser packages).
+
+*Maven Central deployment:* happens via `mvn deploy` (or
+`mvn release:perform`). Any artifact that's *attached* to the Maven project
+gets uploaded. The whole point of the `<attach>false</attach>` /
+`<shadedArtifactAttached>false</shadedArtifactAttached>` pattern is to
+keep the fat distribution shapes off Central without disrupting the
+build process.
+
+*Docker image contents:* `.github/workflows/docker-release.yml` (the
+release publish workflow). The `release-tika-grpc` job currently
+assembles a custom build context from per-module outputs (
+`dependency:copy-dependencies`, per-plugin `cp`, parser-package `cp`).
+The `release-tika-server` job builds from `tika-server-standard-bin.zip`
+(unpacked into `/opt/tika-server/`).
+
+== Cross-references
+
+* xref:maintainers/release-guides/tika.adoc[Releasing Apache Tika]
+* xref:maintainers/release-guides/docker.adoc[Releasing Tika Docker Images]
+* xref:maintainers/release-guides/site-updates.adoc[Updating the Website After 
a Release]
diff --git a/pom.xml b/pom.xml
index db31dcbf72..ce97d63c90 100644
--- a/pom.xml
+++ b/pom.xml
@@ -118,14 +118,13 @@
                       <fileset dir="${basedir}">
                         <include name="CHANGES.txt" />
                         <include name="target/*-src.zip*" />
-                        <include 
name="tika-parsers/tika-parsers-extended/tika-parser-scientific-package/target/tika-parser-scientific-package-${project.version}.jar*"
 />
-                        <include 
name="tika-parsers/tika-parsers-extended/tika-parser-sqlite3-package/target/tika-parser-sqlite3-package-${project.version}.jar*"
 />
-                        <include 
name="tika-parsers/tika-parsers-ml/tika-parser-nlp-package/target/tika-parser-nlp-package-${project.version}.jar*"
 />
-                        <include 
name="tika-app/target/tika-app-${project.version}.jar*" />
-                        <include 
name="tika-server/tika-server-standard/target/tika-server-standard-${project.version}.jar*"
 />
-                        <include 
name="tika-server/tika-server-standard/target/tika-server-standard-${project.version}-bin.tgz*"
 />
+                        <include 
name="tika-parsers/tika-parsers-extended/tika-parser-scientific-package/target/tika-parser-scientific-package-${project.version}-shaded.jar*"
 />
+                        <include 
name="tika-parsers/tika-parsers-extended/tika-parser-sqlite3-package/target/tika-parser-sqlite3-package-${project.version}-shaded.jar*"
 />
+                        <include 
name="tika-parsers/tika-parsers-ml/tika-parser-nlp-package/target/tika-parser-nlp-package-${project.version}-shaded.jar*"
 />
+                        <include 
name="tika-app/target/tika-app-${project.version}.zip*" />
                         <include 
name="tika-server/tika-server-standard/target/tika-server-standard-${project.version}-bin.zip*"
 />
-                        <include 
name="tika-eval/tika-eval-app/target/tika-eval-app-${project.version}.jar*" />
+                        <include 
name="tika-eval/tika-eval-app/target/tika-eval-app-${project.version}.zip*" />
+                        <include 
name="tika-pipes/tika-pipes-plugins/*/target/tika-pipes-*-${project.version}.zip*"
 />
                       </fileset>
                     </copy>
                     <checksum algorithm="SHA-512" fileext=".sha512">
diff --git a/tika-grpc/README.md b/tika-grpc/README.md
index 015af73bd6..fdb2cf275a 100644
--- a/tika-grpc/README.md
+++ b/tika-grpc/README.md
@@ -11,6 +11,24 @@ This server will manage a pool of Tika Pipes clients.
     * Delete
 * Fetch + Parse a given Fetch Item
 
+## Distribution and Maven Artifact
+
+**tika-grpc is designed to be run via Docker — it is not a standalone runnable 
artifact published to Maven Central.**
+
+The Maven artifact for `tika-grpc` is a thin JAR (~238KB) containing only the 
compiled classes and resources.
+It does **not** include a bundled distribution ZIP or any plugin ZIPs. This 
was an intentional change (TIKA-4723)
+to avoid uploading hundreds of megabytes of native libraries and plugin 
bundles to Nexus on every release.
+
+- The runnable Docker image is built using 
`tika-grpc/docker-build/docker-build.sh`, which assembles
+  the full classpath and plugins at Docker build time — not during `mvn 
package`.
+- The `tika-pipes-plugins` (fetchers, emitters, iterators) are also **not** 
attached as Maven artifacts.
+  They are packaged as pf4j ZIP plugins and included in the Docker image.
+- To build the full distribution ZIP locally (e.g. for debugging outside 
Docker), use the `docker` Maven profile:
+  ```bash
+  mvn package -Pdocker -pl tika-grpc
+  ```
+  This produces `tika-grpc/target/tika-grpc-<version>.zip` but does **not** 
deploy it to Nexus.
+
 ## Quick Start - Development Mode
 
 The fastest way to run tika-grpc in development mode with plugin hot-reloading:
diff --git a/tika-grpc/pom.xml b/tika-grpc/pom.xml
index 68fc531a0f..83a197033b 100644
--- a/tika-grpc/pom.xml
+++ b/tika-grpc/pom.xml
@@ -265,20 +265,6 @@
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-dependency-plugin</artifactId>
         <executions>
-          <execution>
-            <id>copy-dependencies</id>
-            <phase>package</phase>
-            <goals>
-              <goal>copy-dependencies</goal>
-            </goals>
-            <configuration>
-              <outputDirectory>${project.build.directory}/lib</outputDirectory>
-              <includeScope>runtime</includeScope>
-              <stripVersion>false</stripVersion>
-              <overWriteReleases>false</overWriteReleases>
-              <overWriteSnapshots>false</overWriteSnapshots>
-            </configuration>
-          </execution>
           <execution>
             <id>copy-plugins</id>
             <phase>process-test-resources</phase>
@@ -479,24 +465,6 @@
           </archive>
         </configuration>
       </plugin>
-      <plugin>
-        <artifactId>maven-assembly-plugin</artifactId>
-        <configuration>
-          <descriptors>
-            <descriptor>src/main/assembly/assembly.xml</descriptor>
-          </descriptors>
-          <appendAssemblyId>false</appendAssemblyId>
-        </configuration>
-        <executions>
-          <execution>
-            <id>make-assembly</id>
-            <phase>package</phase>
-            <goals>
-              <goal>single</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
@@ -533,6 +501,61 @@
   </build>
 
   <profiles>
+    <!--
+      docker profile: copies all runtime deps to target/lib/ and builds the 
full
+      runnable ZIP (target/tika-grpc-*.zip) used by the Docker image.
+      The ZIP is NOT attached to the Maven artifact so it is not uploaded to 
Nexus.
+
+      Usage: mvn package -Pdocker
+    -->
+    <profile>
+      <id>docker</id>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-dependency-plugin</artifactId>
+            <executions>
+              <execution>
+                <id>copy-dependencies</id>
+                <phase>package</phase>
+                <goals>
+                  <goal>copy-dependencies</goal>
+                </goals>
+                <configuration>
+                  
<outputDirectory>${project.build.directory}/lib</outputDirectory>
+                  <includeScope>runtime</includeScope>
+                  <stripVersion>false</stripVersion>
+                  <overWriteReleases>false</overWriteReleases>
+                  <overWriteSnapshots>false</overWriteSnapshots>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+          <plugin>
+            <artifactId>maven-assembly-plugin</artifactId>
+            <configuration>
+              <descriptors>
+                <descriptor>src/main/assembly/assembly.xml</descriptor>
+              </descriptors>
+              <appendAssemblyId>false</appendAssemblyId>
+              <!-- Do not attach the ZIP to the Maven artifact so it is never 
uploaded to Nexus -->
+              <attach>false</attach>
+            </configuration>
+            <executions>
+              <execution>
+                <id>make-assembly</id>
+                <phase>package</phase>
+                <goals>
+                  <goal>single</goal>
+                </goals>
+              </execution>
+            </executions>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+
     <!-- Development profile for running tika-grpc with plugin development 
mode -->
     <profile>
       <id>dev</id>
diff --git 
a/tika-grpc/src/main/java/org/apache/tika/pipes/grpc/TikaGrpcServerImpl.java 
b/tika-grpc/src/main/java/org/apache/tika/pipes/grpc/TikaGrpcServerImpl.java
index c0b2d6b4d6..9f80afb352 100644
--- a/tika-grpc/src/main/java/org/apache/tika/pipes/grpc/TikaGrpcServerImpl.java
+++ b/tika-grpc/src/main/java/org/apache/tika/pipes/grpc/TikaGrpcServerImpl.java
@@ -130,6 +130,15 @@ class TikaGrpcServerImpl extends TikaGrpc.TikaImplBase {
             pluginManager = new org.pf4j.DefaultPluginManager();
         }
 
+        if (pluginManager.getPlugins().isEmpty()) {
+            LOG.warn("tika-grpc started with no tika-pipes plugins loaded. "
+                    + "Most RPC calls will fail with 'fetcher type unknown' or 
"
+                    + "similar. Place tika-pipes-<plugin>-<version>.zip files 
in "
+                    + "a `plugins/` directory next to tika-grpc.jar (or 
configure "
+                    + "`plugin-roots` in your tika config). Plugin zips are "
+                    + "published at 
https://downloads.apache.org/tika/<version>/.");
+        }
+
         this.configStore = createConfigStore();
 
         fetcherManager = FetcherManager.load(pluginManager, tikaJsonConfig, 
true, this.configStore);
diff --git 
a/tika-parsers/tika-parsers-extended/tika-parser-scientific-package/pom.xml 
b/tika-parsers/tika-parsers-extended/tika-parser-scientific-package/pom.xml
index 1c909a1a8a..fd10604144 100644
--- a/tika-parsers/tika-parsers-extended/tika-parser-scientific-package/pom.xml
+++ b/tika-parsers/tika-parsers-extended/tika-parser-scientific-package/pom.xml
@@ -60,6 +60,61 @@
           </archive>
         </configuration>
       </plugin>
+      <!--
+        Build a shaded (fat) jar alongside the slim main artifact. The shade
+        output is written to 
${project.build.directory}/<artifact>-<v>-shaded.jar
+        and is NOT attached to the Maven project, so `mvn deploy` only
+        uploads the slim main jar to Maven Central. The shaded jar exists on
+        disk for Apache dist staging (picked up by the apache-release antrun
+        copy step in the root pom). Same Central/dist separation that
+        TIKA-4723 set up for tika-pipes plugin zips.
+      -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-shade-plugin</artifactId>
+        <version>${maven.shade.version}</version>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+            <configuration>
+              
<outputFile>${project.build.directory}/${project.artifactId}-${project.version}-shaded.jar</outputFile>
+              <shadedArtifactAttached>false</shadedArtifactAttached>
+              <createDependencyReducedPom>false</createDependencyReducedPom>
+              <filters>
+                <filter>
+                  <artifact>*:*</artifact>
+                  <excludes>
+                    <exclude>module-info.class</exclude>
+                    <exclude>META-INF/*.SF</exclude>
+                    <exclude>META-INF/*.DSA</exclude>
+                    <exclude>META-INF/*.RSA</exclude>
+                    <exclude>META-INF/DEPENDENCIES</exclude>
+                    <exclude>META-INF/MANIFEST.MF</exclude>
+                    <exclude>META-INF/LICENSE.md</exclude>
+                    <exclude>META-INF/NOTICE.md</exclude>
+                    <!-- clutter not needed in jar -->
+                    <exclude>resources/grib1/nasa/README*.pdf</exclude>
+                  </excludes>
+                </filter>
+              </filters>
+              <transformers>
+                <transformer 
implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer">
+                  <addHeader>false</addHeader>
+                </transformer>
+                <transformer 
implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer"
 />
+                <transformer 
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"
 />
+                <transformer 
implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
+                  <resource>META-INF/LICENSE</resource>
+                  <file>target/classes/META-INF/LICENSE</file>
+                </transformer>
+              </transformers>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
       <plugin>
         <groupId>org.apache.rat</groupId>
         <artifactId>apache-rat-plugin</artifactId>
diff --git 
a/tika-parsers/tika-parsers-extended/tika-parser-sqlite3-package/pom.xml 
b/tika-parsers/tika-parsers-extended/tika-parser-sqlite3-package/pom.xml
index 072e9248e7..ec7d8dc82e 100644
--- a/tika-parsers/tika-parsers-extended/tika-parser-sqlite3-package/pom.xml
+++ b/tika-parsers/tika-parsers-extended/tika-parser-sqlite3-package/pom.xml
@@ -56,6 +56,56 @@
           </execution>
         </executions>
       </plugin>
+      <!--
+        Build a shaded (fat) jar alongside the slim main artifact. Output is
+        ${project.build.directory}/<artifact>-<v>-shaded.jar and is NOT
+        attached to the Maven project — `mvn deploy` only uploads the slim
+        main jar to Maven Central; the shaded jar is staged to Apache dist
+        by the apache-release antrun copy step in the root pom. Same
+        Central/dist separation that TIKA-4723 set up for tika-pipes
+        plugin zips.
+      -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-shade-plugin</artifactId>
+        <version>${maven.shade.version}</version>
+        <executions>
+          <execution>
+            <phase>package</phase>
+            <goals>
+              <goal>shade</goal>
+            </goals>
+            <configuration>
+              
<outputFile>${project.build.directory}/${project.artifactId}-${project.version}-shaded.jar</outputFile>
+              <shadedArtifactAttached>false</shadedArtifactAttached>
+              <createDependencyReducedPom>false</createDependencyReducedPom>
+              <filters>
+                <filter>
+                  <artifact>*:*</artifact>
+                  <excludes>
+                    <exclude>META-INF/*.SF</exclude>
+                    <exclude>META-INF/*.DSA</exclude>
+                    <exclude>META-INF/*.RSA</exclude>
+                    <exclude>META-INF/DEPENDENCIES</exclude>
+                    <exclude>META-INF/MANIFEST.MF</exclude>
+                  </excludes>
+                </filter>
+              </filters>
+              <transformers>
+                <transformer 
implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer">
+                  <addHeader>false</addHeader>
+                </transformer>
+                <transformer 
implementation="org.apache.maven.plugins.shade.resource.ApacheLicenseResourceTransformer"
 />
+                <transformer 
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"
 />
+                <transformer 
implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
+                  <resource>META-INF/LICENSE</resource>
+                  <file>target/classes/META-INF/LICENSE</file>
+                </transformer>
+              </transformers>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 
diff --git a/tika-parsers/tika-parsers-ml/tika-parser-nlp-package/pom.xml 
b/tika-parsers/tika-parsers-ml/tika-parser-nlp-package/pom.xml
index 28201251bc..463a41a46b 100644
--- a/tika-parsers/tika-parsers-ml/tika-parser-nlp-package/pom.xml
+++ b/tika-parsers/tika-parsers-ml/tika-parser-nlp-package/pom.xml
@@ -64,6 +64,16 @@
               <goal>shade</goal>
             </goals>
             <configuration>
+              <!--
+                Direct the shaded jar to a `-shaded.jar` filename so the slim
+                main artifact stays intact for Maven Central, and
+                shadedArtifactAttached=false keeps the fat jar out of the
+                Maven artifact set entirely. The fat jar exists on disk for
+                Apache dist staging only. Same Central/dist separation
+                TIKA-4723 set up for tika-pipes plugin zips.
+              -->
+              
<outputFile>${project.build.directory}/${project.artifactId}-${project.version}-shaded.jar</outputFile>
+              <shadedArtifactAttached>false</shadedArtifactAttached>
               <createDependencyReducedPom>
                 false
               </createDependencyReducedPom>
diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-atlassian-jwt/pom.xml 
b/tika-pipes/tika-pipes-plugins/tika-pipes-atlassian-jwt/pom.xml
index 1c69275ed1..59bdfc82a3 100644
--- a/tika-pipes/tika-pipes-plugins/tika-pipes-atlassian-jwt/pom.xml
+++ b/tika-pipes/tika-pipes-plugins/tika-pipes-atlassian-jwt/pom.xml
@@ -113,6 +113,7 @@
             <descriptor>src/main/assembly/assembly.xml</descriptor>
           </descriptors>
           <appendAssemblyId>false</appendAssemblyId>
+              <attach>false</attach>
         </configuration>
         <executions>
           <execution>
@@ -124,6 +125,34 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-install-plugin</artifactId>
+        <executions>
+          <!--
+            The assembly attaches the zip with <attach>false</attach> 
(TIKA-4723)
+            so it is not added to the Maven artifact set and therefore is not
+            deployed to Maven Central. Sibling modules declare this plugin zip
+            as a test-scope Maven dep, so we install-file it locally to satisfy
+            reactor resolution without making it part of the project artifacts.
+          -->
+          <execution>
+            <id>install-plugin-zip-locally</id>
+            <phase>install</phase>
+            <goals>
+              <goal>install-file</goal>
+            </goals>
+            <configuration>
+              
<file>${project.build.directory}/${project.artifactId}-${project.version}.zip</file>
+              <groupId>${project.groupId}</groupId>
+              <artifactId>${project.artifactId}</artifactId>
+              <version>${project.version}</version>
+              <packaging>zip</packaging>
+              <generatePom>false</generatePom>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 </project>
diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-az-blob/pom.xml 
b/tika-pipes/tika-pipes-plugins/tika-pipes-az-blob/pom.xml
index 41f8661d80..72e22d0eeb 100644
--- a/tika-pipes/tika-pipes-plugins/tika-pipes-az-blob/pom.xml
+++ b/tika-pipes/tika-pipes-plugins/tika-pipes-az-blob/pom.xml
@@ -105,6 +105,7 @@
           </descriptors>
           <finalName>${project.artifactId}-${project.version}</finalName>
           <appendAssemblyId>false</appendAssemblyId>
+              <attach>false</attach>
         </configuration>
         <executions>
           <execution>
@@ -125,6 +126,34 @@
           </annotationProcessors>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-install-plugin</artifactId>
+        <executions>
+          <!--
+            The assembly attaches the zip with <attach>false</attach> 
(TIKA-4723)
+            so it is not added to the Maven artifact set and therefore is not
+            deployed to Maven Central. Sibling modules declare this plugin zip
+            as a test-scope Maven dep, so we install-file it locally to satisfy
+            reactor resolution without making it part of the project artifacts.
+          -->
+          <execution>
+            <id>install-plugin-zip-locally</id>
+            <phase>install</phase>
+            <goals>
+              <goal>install-file</goal>
+            </goals>
+            <configuration>
+              
<file>${project.build.directory}/${project.artifactId}-${project.version}.zip</file>
+              <groupId>${project.groupId}</groupId>
+              <artifactId>${project.artifactId}</artifactId>
+              <version>${project.version}</version>
+              <packaging>zip</packaging>
+              <generatePom>false</generatePom>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 
diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-csv/pom.xml 
b/tika-pipes/tika-pipes-plugins/tika-pipes-csv/pom.xml
index cf05e4391f..d2d0f302cc 100644
--- a/tika-pipes/tika-pipes-plugins/tika-pipes-csv/pom.xml
+++ b/tika-pipes/tika-pipes-plugins/tika-pipes-csv/pom.xml
@@ -93,6 +93,7 @@
             <descriptor>src/main/assembly/assembly.xml</descriptor>
           </descriptors>
           <appendAssemblyId>false</appendAssemblyId>
+              <attach>false</attach>
         </configuration>
         <executions>
           <execution>
@@ -113,6 +114,34 @@
           </annotationProcessors>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-install-plugin</artifactId>
+        <executions>
+          <!--
+            The assembly attaches the zip with <attach>false</attach> 
(TIKA-4723)
+            so it is not added to the Maven artifact set and therefore is not
+            deployed to Maven Central. Sibling modules declare this plugin zip
+            as a test-scope Maven dep, so we install-file it locally to satisfy
+            reactor resolution without making it part of the project artifacts.
+          -->
+          <execution>
+            <id>install-plugin-zip-locally</id>
+            <phase>install</phase>
+            <goals>
+              <goal>install-file</goal>
+            </goals>
+            <configuration>
+              
<file>${project.build.directory}/${project.artifactId}-${project.version}.zip</file>
+              <groupId>${project.groupId}</groupId>
+              <artifactId>${project.artifactId}</artifactId>
+              <version>${project.version}</version>
+              <packaging>zip</packaging>
+              <generatePom>false</generatePom>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 
diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-es/pom.xml 
b/tika-pipes/tika-pipes-plugins/tika-pipes-es/pom.xml
index e892dbf451..1170e5e970 100644
--- a/tika-pipes/tika-pipes-plugins/tika-pipes-es/pom.xml
+++ b/tika-pipes/tika-pipes-plugins/tika-pipes-es/pom.xml
@@ -110,6 +110,7 @@
             <descriptor>src/main/assembly/assembly.xml</descriptor>
           </descriptors>
           <appendAssemblyId>false</appendAssemblyId>
+              <attach>false</attach>
         </configuration>
         <executions>
           <execution>
@@ -130,6 +131,34 @@
           </annotationProcessors>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-install-plugin</artifactId>
+        <executions>
+          <!--
+            The assembly attaches the zip with <attach>false</attach> 
(TIKA-4723)
+            so it is not added to the Maven artifact set and therefore is not
+            deployed to Maven Central. Sibling modules declare this plugin zip
+            as a test-scope Maven dep, so we install-file it locally to satisfy
+            reactor resolution without making it part of the project artifacts.
+          -->
+          <execution>
+            <id>install-plugin-zip-locally</id>
+            <phase>install</phase>
+            <goals>
+              <goal>install-file</goal>
+            </goals>
+            <configuration>
+              
<file>${project.build.directory}/${project.artifactId}-${project.version}.zip</file>
+              <groupId>${project.groupId}</groupId>
+              <artifactId>${project.artifactId}</artifactId>
+              <version>${project.version}</version>
+              <packaging>zip</packaging>
+              <generatePom>false</generatePom>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 
diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-file-system/pom.xml 
b/tika-pipes/tika-pipes-plugins/tika-pipes-file-system/pom.xml
index 365fb637d6..5459d99c1e 100644
--- a/tika-pipes/tika-pipes-plugins/tika-pipes-file-system/pom.xml
+++ b/tika-pipes/tika-pipes-plugins/tika-pipes-file-system/pom.xml
@@ -107,6 +107,7 @@
             <descriptor>src/main/assembly/assembly.xml</descriptor>
           </descriptors>
           <appendAssemblyId>false</appendAssemblyId>
+              <attach>false</attach>
         </configuration>
         <executions>
           <execution>
@@ -127,6 +128,34 @@
         </annotationProcessors>
       </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-install-plugin</artifactId>
+        <executions>
+          <!--
+            The assembly attaches the zip with <attach>false</attach> 
(TIKA-4723)
+            so it is not added to the Maven artifact set and therefore is not
+            deployed to Maven Central. Sibling modules declare this plugin zip
+            as a test-scope Maven dep, so we install-file it locally to satisfy
+            reactor resolution without making it part of the project artifacts.
+          -->
+          <execution>
+            <id>install-plugin-zip-locally</id>
+            <phase>install</phase>
+            <goals>
+              <goal>install-file</goal>
+            </goals>
+            <configuration>
+              
<file>${project.build.directory}/${project.artifactId}-${project.version}.zip</file>
+              <groupId>${project.groupId}</groupId>
+              <artifactId>${project.artifactId}</artifactId>
+              <version>${project.version}</version>
+              <packaging>zip</packaging>
+              <generatePom>false</generatePom>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
   <scm>
diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-gcs/pom.xml 
b/tika-pipes/tika-pipes-plugins/tika-pipes-gcs/pom.xml
index 087708a361..2d569aa8bb 100644
--- a/tika-pipes/tika-pipes-plugins/tika-pipes-gcs/pom.xml
+++ b/tika-pipes/tika-pipes-plugins/tika-pipes-gcs/pom.xml
@@ -101,6 +101,7 @@
           </descriptors>
           <finalName>${project.artifactId}-${project.version}</finalName>
           <appendAssemblyId>false</appendAssemblyId>
+              <attach>false</attach>
         </configuration>
         <executions>
           <execution>
@@ -121,6 +122,34 @@
           </annotationProcessors>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-install-plugin</artifactId>
+        <executions>
+          <!--
+            The assembly attaches the zip with <attach>false</attach> 
(TIKA-4723)
+            so it is not added to the Maven artifact set and therefore is not
+            deployed to Maven Central. Sibling modules declare this plugin zip
+            as a test-scope Maven dep, so we install-file it locally to satisfy
+            reactor resolution without making it part of the project artifacts.
+          -->
+          <execution>
+            <id>install-plugin-zip-locally</id>
+            <phase>install</phase>
+            <goals>
+              <goal>install-file</goal>
+            </goals>
+            <configuration>
+              
<file>${project.build.directory}/${project.artifactId}-${project.version}.zip</file>
+              <groupId>${project.groupId}</groupId>
+              <artifactId>${project.artifactId}</artifactId>
+              <version>${project.version}</version>
+              <packaging>zip</packaging>
+              <generatePom>false</generatePom>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 
diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-google-drive/pom.xml 
b/tika-pipes/tika-pipes-plugins/tika-pipes-google-drive/pom.xml
index 880382d3e0..b697b0e97c 100644
--- a/tika-pipes/tika-pipes-plugins/tika-pipes-google-drive/pom.xml
+++ b/tika-pipes/tika-pipes-plugins/tika-pipes-google-drive/pom.xml
@@ -159,6 +159,7 @@
             <descriptor>src/main/assembly/assembly.xml</descriptor>
           </descriptors>
           <appendAssemblyId>false</appendAssemblyId>
+              <attach>false</attach>
         </configuration>
         <executions>
           <execution>
@@ -170,6 +171,34 @@
           </execution>
         </executions>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-install-plugin</artifactId>
+        <executions>
+          <!--
+            The assembly attaches the zip with <attach>false</attach> 
(TIKA-4723)
+            so it is not added to the Maven artifact set and therefore is not
+            deployed to Maven Central. Sibling modules declare this plugin zip
+            as a test-scope Maven dep, so we install-file it locally to satisfy
+            reactor resolution without making it part of the project artifacts.
+          -->
+          <execution>
+            <id>install-plugin-zip-locally</id>
+            <phase>install</phase>
+            <goals>
+              <goal>install-file</goal>
+            </goals>
+            <configuration>
+              
<file>${project.build.directory}/${project.artifactId}-${project.version}.zip</file>
+              <groupId>${project.groupId}</groupId>
+              <artifactId>${project.artifactId}</artifactId>
+              <version>${project.version}</version>
+              <packaging>zip</packaging>
+              <generatePom>false</generatePom>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 </project>
diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-http/pom.xml 
b/tika-pipes/tika-pipes-plugins/tika-pipes-http/pom.xml
index 304508f815..90336cde36 100644
--- a/tika-pipes/tika-pipes-plugins/tika-pipes-http/pom.xml
+++ b/tika-pipes/tika-pipes-plugins/tika-pipes-http/pom.xml
@@ -147,6 +147,7 @@
             <descriptor>src/main/assembly/assembly.xml</descriptor>
           </descriptors>
           <appendAssemblyId>false</appendAssemblyId>
+              <attach>false</attach>
         </configuration>
         <executions>
           <execution>
@@ -174,6 +175,38 @@
           </systemPropertyVariables>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-install-plugin</artifactId>
+        <executions>
+          <!--
+            The assembly attaches the zip with <attach>false</attach> 
(TIKA-4723)
+            so it is not added to the Maven artifact set and therefore is not
+            deployed to Maven Central. Sibling modules declare this plugin zip
+            as a test-scope Maven dep, so we install-file it locally to satisfy
+            reactor resolution without making it part of the project artifacts.
+
+            tika-pipes-http writes its zip to target/plugins/ (not target/) so
+            that its own self-tests can load the plugin via PF4J in deployment
+            mode; reflect that path here.
+          -->
+          <execution>
+            <id>install-plugin-zip-locally</id>
+            <phase>install</phase>
+            <goals>
+              <goal>install-file</goal>
+            </goals>
+            <configuration>
+              
<file>${project.build.directory}/plugins/${project.artifactId}-${project.version}.zip</file>
+              <groupId>${project.groupId}</groupId>
+              <artifactId>${project.artifactId}</artifactId>
+              <version>${project.version}</version>
+              <packaging>zip</packaging>
+              <generatePom>false</generatePom>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
   <scm>
diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-jdbc/pom.xml 
b/tika-pipes/tika-pipes-plugins/tika-pipes-jdbc/pom.xml
index b54c5c6a39..668c6a86e3 100644
--- a/tika-pipes/tika-pipes-plugins/tika-pipes-jdbc/pom.xml
+++ b/tika-pipes/tika-pipes-plugins/tika-pipes-jdbc/pom.xml
@@ -101,6 +101,7 @@
           </descriptors>
           <finalName>${project.artifactId}-${project.version}</finalName>
           <appendAssemblyId>false</appendAssemblyId>
+              <attach>false</attach>
         </configuration>
         <executions>
           <execution>
@@ -121,6 +122,34 @@
           </annotationProcessors>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-install-plugin</artifactId>
+        <executions>
+          <!--
+            The assembly attaches the zip with <attach>false</attach> 
(TIKA-4723)
+            so it is not added to the Maven artifact set and therefore is not
+            deployed to Maven Central. Sibling modules declare this plugin zip
+            as a test-scope Maven dep, so we install-file it locally to satisfy
+            reactor resolution without making it part of the project artifacts.
+          -->
+          <execution>
+            <id>install-plugin-zip-locally</id>
+            <phase>install</phase>
+            <goals>
+              <goal>install-file</goal>
+            </goals>
+            <configuration>
+              
<file>${project.build.directory}/${project.artifactId}-${project.version}.zip</file>
+              <groupId>${project.groupId}</groupId>
+              <artifactId>${project.artifactId}</artifactId>
+              <version>${project.version}</version>
+              <packaging>zip</packaging>
+              <generatePom>false</generatePom>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 </project>
diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-json/pom.xml 
b/tika-pipes/tika-pipes-plugins/tika-pipes-json/pom.xml
index 126b12f775..9661e09c7d 100644
--- a/tika-pipes/tika-pipes-plugins/tika-pipes-json/pom.xml
+++ b/tika-pipes/tika-pipes-plugins/tika-pipes-json/pom.xml
@@ -95,6 +95,7 @@
             <descriptor>src/main/assembly/assembly.xml</descriptor>
           </descriptors>
           <appendAssemblyId>false</appendAssemblyId>
+              <attach>false</attach>
         </configuration>
         <executions>
           <execution>
@@ -115,6 +116,34 @@
           </annotationProcessors>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-install-plugin</artifactId>
+        <executions>
+          <!--
+            The assembly attaches the zip with <attach>false</attach> 
(TIKA-4723)
+            so it is not added to the Maven artifact set and therefore is not
+            deployed to Maven Central. Sibling modules declare this plugin zip
+            as a test-scope Maven dep, so we install-file it locally to satisfy
+            reactor resolution without making it part of the project artifacts.
+          -->
+          <execution>
+            <id>install-plugin-zip-locally</id>
+            <phase>install</phase>
+            <goals>
+              <goal>install-file</goal>
+            </goals>
+            <configuration>
+              
<file>${project.build.directory}/${project.artifactId}-${project.version}.zip</file>
+              <groupId>${project.groupId}</groupId>
+              <artifactId>${project.artifactId}</artifactId>
+              <version>${project.version}</version>
+              <packaging>zip</packaging>
+              <generatePom>false</generatePom>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 
diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-kafka/pom.xml 
b/tika-pipes/tika-pipes-plugins/tika-pipes-kafka/pom.xml
index 84a7422c0d..34659e4e2a 100644
--- a/tika-pipes/tika-pipes-plugins/tika-pipes-kafka/pom.xml
+++ b/tika-pipes/tika-pipes-plugins/tika-pipes-kafka/pom.xml
@@ -108,6 +108,7 @@
             <descriptor>src/main/assembly/assembly.xml</descriptor>
           </descriptors>
           <appendAssemblyId>false</appendAssemblyId>
+              <attach>false</attach>
         </configuration>
         <executions>
           <execution>
@@ -128,6 +129,34 @@
           </annotationProcessors>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-install-plugin</artifactId>
+        <executions>
+          <!--
+            The assembly attaches the zip with <attach>false</attach> 
(TIKA-4723)
+            so it is not added to the Maven artifact set and therefore is not
+            deployed to Maven Central. Sibling modules declare this plugin zip
+            as a test-scope Maven dep, so we install-file it locally to satisfy
+            reactor resolution without making it part of the project artifacts.
+          -->
+          <execution>
+            <id>install-plugin-zip-locally</id>
+            <phase>install</phase>
+            <goals>
+              <goal>install-file</goal>
+            </goals>
+            <configuration>
+              
<file>${project.build.directory}/${project.artifactId}-${project.version}.zip</file>
+              <groupId>${project.groupId}</groupId>
+              <artifactId>${project.artifactId}</artifactId>
+              <version>${project.version}</version>
+              <packaging>zip</packaging>
+              <generatePom>false</generatePom>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 
diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-microsoft-graph/pom.xml 
b/tika-pipes/tika-pipes-plugins/tika-pipes-microsoft-graph/pom.xml
index 54e40a8e32..b8d733521b 100644
--- a/tika-pipes/tika-pipes-plugins/tika-pipes-microsoft-graph/pom.xml
+++ b/tika-pipes/tika-pipes-plugins/tika-pipes-microsoft-graph/pom.xml
@@ -182,6 +182,7 @@
             <descriptor>src/main/assembly/assembly.xml</descriptor>
           </descriptors>
           <appendAssemblyId>false</appendAssemblyId>
+              <attach>false</attach>
         </configuration>
         <executions>
           <execution>
@@ -202,6 +203,34 @@
           </annotationProcessors>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-install-plugin</artifactId>
+        <executions>
+          <!--
+            The assembly attaches the zip with <attach>false</attach> 
(TIKA-4723)
+            so it is not added to the Maven artifact set and therefore is not
+            deployed to Maven Central. Sibling modules declare this plugin zip
+            as a test-scope Maven dep, so we install-file it locally to satisfy
+            reactor resolution without making it part of the project artifacts.
+          -->
+          <execution>
+            <id>install-plugin-zip-locally</id>
+            <phase>install</phase>
+            <goals>
+              <goal>install-file</goal>
+            </goals>
+            <configuration>
+              
<file>${project.build.directory}/${project.artifactId}-${project.version}.zip</file>
+              <groupId>${project.groupId}</groupId>
+              <artifactId>${project.artifactId}</artifactId>
+              <version>${project.version}</version>
+              <packaging>zip</packaging>
+              <generatePom>false</generatePom>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 
diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-opensearch/pom.xml 
b/tika-pipes/tika-pipes-plugins/tika-pipes-opensearch/pom.xml
index 4f8b791af7..4cca9007da 100644
--- a/tika-pipes/tika-pipes-plugins/tika-pipes-opensearch/pom.xml
+++ b/tika-pipes/tika-pipes-plugins/tika-pipes-opensearch/pom.xml
@@ -111,6 +111,7 @@
             <descriptor>src/main/assembly/assembly.xml</descriptor>
           </descriptors>
           <appendAssemblyId>false</appendAssemblyId>
+              <attach>false</attach>
         </configuration>
         <executions>
           <execution>
@@ -131,6 +132,34 @@
           </annotationProcessors>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-install-plugin</artifactId>
+        <executions>
+          <!--
+            The assembly attaches the zip with <attach>false</attach> 
(TIKA-4723)
+            so it is not added to the Maven artifact set and therefore is not
+            deployed to Maven Central. Sibling modules declare this plugin zip
+            as a test-scope Maven dep, so we install-file it locally to satisfy
+            reactor resolution without making it part of the project artifacts.
+          -->
+          <execution>
+            <id>install-plugin-zip-locally</id>
+            <phase>install</phase>
+            <goals>
+              <goal>install-file</goal>
+            </goals>
+            <configuration>
+              
<file>${project.build.directory}/${project.artifactId}-${project.version}.zip</file>
+              <groupId>${project.groupId}</groupId>
+              <artifactId>${project.artifactId}</artifactId>
+              <version>${project.version}</version>
+              <packaging>zip</packaging>
+              <generatePom>false</generatePom>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 
diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-s3/pom.xml 
b/tika-pipes/tika-pipes-plugins/tika-pipes-s3/pom.xml
index ab5e563268..4335bce1c1 100644
--- a/tika-pipes/tika-pipes-plugins/tika-pipes-s3/pom.xml
+++ b/tika-pipes/tika-pipes-plugins/tika-pipes-s3/pom.xml
@@ -112,6 +112,7 @@
             <descriptor>src/main/assembly/assembly.xml</descriptor>
           </descriptors>
           <appendAssemblyId>false</appendAssemblyId>
+              <attach>false</attach>
         </configuration>
         <executions>
           <execution>
@@ -132,6 +133,34 @@
           </annotationProcessors>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-install-plugin</artifactId>
+        <executions>
+          <!--
+            The assembly attaches the zip with <attach>false</attach> 
(TIKA-4723)
+            so it is not added to the Maven artifact set and therefore is not
+            deployed to Maven Central. Sibling modules declare this plugin zip
+            as a test-scope Maven dep, so we install-file it locally to satisfy
+            reactor resolution without making it part of the project artifacts.
+          -->
+          <execution>
+            <id>install-plugin-zip-locally</id>
+            <phase>install</phase>
+            <goals>
+              <goal>install-file</goal>
+            </goals>
+            <configuration>
+              
<file>${project.build.directory}/${project.artifactId}-${project.version}.zip</file>
+              <groupId>${project.groupId}</groupId>
+              <artifactId>${project.artifactId}</artifactId>
+              <version>${project.version}</version>
+              <packaging>zip</packaging>
+              <generatePom>false</generatePom>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 </project>
diff --git a/tika-pipes/tika-pipes-plugins/tika-pipes-solr/pom.xml 
b/tika-pipes/tika-pipes-plugins/tika-pipes-solr/pom.xml
index 8cc31cf678..70bccf4e04 100644
--- a/tika-pipes/tika-pipes-plugins/tika-pipes-solr/pom.xml
+++ b/tika-pipes/tika-pipes-plugins/tika-pipes-solr/pom.xml
@@ -116,6 +116,7 @@
           </descriptors>
           <finalName>${project.artifactId}-${project.version}</finalName>
           <appendAssemblyId>false</appendAssemblyId>
+              <attach>false</attach>
         </configuration>
         <executions>
           <execution>
@@ -136,6 +137,34 @@
           </annotationProcessors>
         </configuration>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-install-plugin</artifactId>
+        <executions>
+          <!--
+            The assembly attaches the zip with <attach>false</attach> 
(TIKA-4723)
+            so it is not added to the Maven artifact set and therefore is not
+            deployed to Maven Central. Sibling modules declare this plugin zip
+            as a test-scope Maven dep, so we install-file it locally to satisfy
+            reactor resolution without making it part of the project artifacts.
+          -->
+          <execution>
+            <id>install-plugin-zip-locally</id>
+            <phase>install</phase>
+            <goals>
+              <goal>install-file</goal>
+            </goals>
+            <configuration>
+              
<file>${project.build.directory}/${project.artifactId}-${project.version}.zip</file>
+              <groupId>${project.groupId}</groupId>
+              <artifactId>${project.artifactId}</artifactId>
+              <version>${project.version}</version>
+              <packaging>zip</packaging>
+              <generatePom>false</generatePom>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>
 
diff --git a/tika-serialization/pom.xml b/tika-serialization/pom.xml
index a5f0ddd249..d9345490c1 100644
--- a/tika-serialization/pom.xml
+++ b/tika-serialization/pom.xml
@@ -62,12 +62,6 @@
       <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-databind</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.projectlombok</groupId>
-      <artifactId>lombok</artifactId>
-      <version>${lombok.version}</version>
-      <scope>compile</scope>
-    </dependency>
     <!-- Test dependencies -->
     <dependency>
       <groupId>org.junit.jupiter</groupId>

Reply via email to