diff --git a/phoenix-shaded-commons-cli/pom.xml b/phoenix-shaded-commons-cli/pom.xml
index cc286c0..6f85993 100644
--- a/phoenix-shaded-commons-cli/pom.xml
+++ b/phoenix-shaded-commons-cli/pom.xml
@@ -28,112 +28,24 @@
   <artifactId>phoenix-shaded-commons-cli</artifactId>
   <name>Apache Phoenix Patched and Relocated (Shaded) Commons-CLI</name>
   <description>
-    Pulls down commons-cli, patches it, compiles, and then relocates/shades.
+    Pulls down commons-cli, relocates it and then makes a new jar with it.
   </description>
   <build>
     <plugins>
       <plugin>
-        <!--Clean needs to purge src/main/java since this is where
-             the unpack of commons-cli is overlaid. Do it for usual
-             clean goal but also before we unpack in case patches
-             delete/add files. We use src/main/java instead of dir
-             under 'target' because the jar plugin is dumb, hard to
-             make it source from other then src/main/java.-->
         <artifactId>maven-clean-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>pre-generate-sources</id>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>clean</goal>
-            </goals>
-          </execution>
-        </executions>
         <configuration>
           <filesets>
             <fileset>
-              <directory>${basedir}/src/main/java</directory>
+              <directory>${basedir}</directory>
               <includes>
-                <include>**/**</include>
+                <include>dependency-reduced-pom.xml</include>
               </includes>
-              <followSymlinks>false</followSymlinks>
             </fileset>
           </filesets>
         </configuration>
       </plugin>
       <plugin>
-        <!--Download our dependency src, i.e. commons-cli, and
-             unpack it. Overlays src/main/java so ready for
-            compile-time (the jar plugin expects src in
-            src/main/java)-->
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-dependency-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>unpack</id>
-            <phase>generate-sources</phase>
-            <goals>
-              <goal>unpack</goal>
-            </goals>
-            <configuration>
-              <artifactItems>
-                <artifactItem>
-                  <groupId>commons-cli</groupId>
-                  <artifactId>commons-cli</artifactId>
-                  <version>${commons-cli.version}</version>
-                  <classifier>sources</classifier>
-                  <type>jar</type>
-                  <overWrite>true</overWrite>
-                  <outputDirectory>${basedir}/src/main/java</outputDirectory>
-                </artifactItem>
-              </artifactItems>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-      </plugin>
-      <!--Apply our patches to the unpacked commons-cli src-->
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-patch-plugin</artifactId>
-        <version>1.2</version>
-        <configuration>
-          <targetDirectory>${basedir}</targetDirectory>
-          <skipApplication>false</skipApplication>
-        </configuration>
-        <executions>
-          <execution>
-            <id>patch</id>
-            <phase>process-sources</phase>
-            <goals>
-              <goal>apply</goal>
-            </goals>
-            <configuration>
-              <strip>0</strip>
-              <patchDirectory>${basedir}/src/main/patches</patchDirectory>
-              <patchTrackingFile>${project.build.directory}/patches-applied.txt</patchTrackingFile>
-              <naturalOrderProcessing>true</naturalOrderProcessing>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-source-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>attach-sources</id>
-            <goals>
-              <goal>jar-no-fork</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <!--Above we built a jar. Now at package step, do relocation/shade-->
-      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-shade-plugin</artifactId>
         <executions>
@@ -157,4 +69,11 @@
       </plugin>
     </plugins>
   </build>
+  <dependencies>
+    <dependency>
+      <groupId>commons-cli</groupId>
+      <artifactId>commons-cli</artifactId>
+      <version>${commons-cli.version}</version>
+    </dependency>
+  </dependencies>
 </project>
\ No newline at end of file
diff --git a/phoenix-shaded-commons-cli/src/main/patches/CLI-254-1.4.patch b/phoenix-shaded-commons-cli/src/main/patches/CLI-254-1.4.patch
deleted file mode 100644
index 4616fab..0000000
--- a/phoenix-shaded-commons-cli/src/main/patches/CLI-254-1.4.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-diff --git src/main/java/org/apache/commons/cli/DefaultParser.java src/main/java/org/apache/commons/cli/DefaultParser.java
-index d762a3e..ebc324f 100644
---- src/main/java/org/apache/commons/cli/DefaultParser.java
-+++ src/main/java/org/apache/commons/cli/DefaultParser.java
-@@ -54,7 +54,44 @@ public class DefaultParser implements CommandLineParser
-  
-     /** The required options and groups expected to be found when parsing the command line. */
-     protected List expectedOpts;
-- 
-+
-+    public DefaultParser() {
-+        this.stripLeadingAndTrailingQuotes = true;
-+    }
-+
-+    /** Flag indicating if balanced leading and trailing double quotes should be stripped from option arguments. */
-+    private final  boolean stripLeadingAndTrailingQuotes;
-+
-+    /**
-+     * Create a new DefaultParser instance with the specified partial matching and quote
-+     * stripping policy.
-+     *
-+     * By "partial matching" we mean that given the following code:
-+     * <pre>
-+     *     {@code
-+     *          final Options options = new Options();
-+     *      options.addOption(new Option("d", "debug", false, "Turn on debug."));
-+     *      options.addOption(new Option("e", "extract", false, "Turn on extract."));
-+     *      options.addOption(new Option("o", "option", true, "Turn on option with argument."));
-+     *      }
-+     * </pre>
-+     * with "partial matching" turned on, <code>-de</code> only matches the
-+     * <code>"debug"</code> option. However, with "partial matching" disabled,
-+     * <code>-de</code> would enable both <code>debug</code> as well as
-+     * <code>extract</code> options.
-+     * with "stripping of balanced leading and trailing double quotes from option arguments" turned
-+     * on, the outermost balanced double quotes of option arguments values will be removed.
-+     * ie.
-+     * for <code>-o '"x"'</code> getValue() will return <code>x</code>, instead of <code>"x"</code>
-+     * @param allowPartialMatching if partial matching of long options shall be enabled
-+     * @param stripLeadingAndTrailingQuotes if balanced outer double quoutes should be stripped
-+     */
-+    public DefaultParser(final boolean allowPartialMatching,
-+            final boolean stripLeadingAndTrailingQuotes) {
-+        // We do not care about allowPartialMatching in this patch
-+        this.stripLeadingAndTrailingQuotes = stripLeadingAndTrailingQuotes;
-+    }
-+
-     public CommandLine parse(Options options, String[] arguments) throws ParseException
-     {
-         return parse(options, arguments, null);
-@@ -232,7 +269,7 @@ public class DefaultParser implements CommandLineParser
-         }
-         else if (currentOption != null && currentOption.acceptsArg() && isArgument(token))
-         {
--            currentOption.addValueForProcessing(Util.stripLeadingAndTrailingQuotes(token));
-+            currentOption.addValueForProcessing(conditionallyStripLeadingAndTrailingQuotes(token));
-         }
-         else if (token.startsWith("--"))
-         {
-@@ -704,4 +741,12 @@ public class DefaultParser implements CommandLineParser
-             }
-         }
-     }
-+
-+    protected String conditionallyStripLeadingAndTrailingQuotes(final String token) {
-+        if(stripLeadingAndTrailingQuotes) {
-+            return Util.stripLeadingAndTrailingQuotes(token);
-+        } else {
-+            return token;
-+        }
-+    }
- }
diff --git a/pom.xml b/pom.xml
index 9bd30b5..0b31dc9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,7 +69,7 @@
   <properties>
     <rename.offset>org.apache.phoenix.thirdparty</rename.offset>
     <guava.version>29.0-android</guava.version>
-    <commons-cli.version>1.4</commons-cli.version>
+    <commons-cli.version>1.5.0</commons-cli.version>
   </properties>
 
   <build>
