• storm maven-shade-plugin


     

     storm-core pom

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>shade</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <keepDependenciesWithProvidedScope>false</keepDependenciesWithProvidedScope>
                        <promoteTransitiveDependencies>false</promoteTransitiveDependencies>
                        <createDependencyReducedPom>true</createDependencyReducedPom>
                        <minimizeJar>false</minimizeJar>
                        <artifactSet>
                            <includes>
                                <include>ns-tracker:ns-tracker</include>
                                <include>hiccup:hiccup</include>
                                <include>ring:*</include>
                                <include>compojure:compojure</include>
                                <include>clj-time:clj-time</include>
                                <include>org.apache.thrift:*</include>
                                <include>io.netty:netty</include>
                                <include>com.google.guava:guava</include>
                                <include>org.apache.httpcomponents:http*</include>
                                <include>org.apache.zookeeper:zookeeper</include>
                                <include>org.apache.curator:*</include>
                                <include>com.twitter:carbonite</include>
                                <include>com.twitter:chill-java</include>
                                <include>org.tukaani:xz</include>
                                <include>org.yaml:snakeyaml</include>
                                <include>org.jgrapht:jgrapht-core</include>
                                <include>org.apache.commons:commons-exec</include>
                                <include>org.apache.commons:commons-compress</include>
                                <include>commons-collections:commons-collections</include>
                                <include>org.apache.hadoop:hadoop-auth</include>
                                <include>commons-io:commons-io</include>
                                <include>commons-codec:commons-codec</include>
                                <include>commons-fileupload:commons-fileupload</include>
                                <include>commons-lang:commons-lang</include>
                                <include>com.googlecode.json-simple:json-simple</include>
                                <include>org.clojure:math.numeric-tower</include>
                                <include>org.clojure:tools.cli</include>
                                <include>org.clojure:tools.logging</include>
                                <include>org.clojure:tools.macro</include>
                                <include>org.clojure:java.jmx</include>
                                <include>joda-time:joda-time</include>
                                <include>org.eclipse.jetty:*</include>
                                <include>com.fasterxml.jackson.core:*</include>
                                <include>com.fasterxml.jackson.dataformat:*</include>
                                <include>clout:clout</include>
                                <include>org.clojure:tools.namespace</include>
                                <include>cheshire:cheshire</include>
                                <include>org.clojure:core.incubator</include>
                                <include>metrics-clojure:*</include>
                            </includes>
                        </artifactSet>
                        <relocations>
                            <relocation>
                                <pattern>cheshire</pattern>
                                <shadedPattern>org.apache.storm.shade.cheshire</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>clojure.tools.logging</pattern>
                                <shadedPattern>org.apache.storm.shade.clojure.tools.logging</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>clojure.core.incubator</pattern>
                                <shadedPattern>org.apache.storm.shade.clojure.core.incubator</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>clojure.tools.namespace</pattern>
                                <shadedPattern>org.apache.storm.shade.clojure.tools.namespace</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>clout</pattern>
                                <shadedPattern>org.apache.storm.shade.clout</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>compojure</pattern>
                                <shadedPattern>org.apache.storm.shade.compojure</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>ns_tracker</pattern>
                                <shadedPattern>org.apache.storm.shade.ns_tracker</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>ns-tracker</pattern>
                                <shadedPattern>org.apache.storm.shade.ns-tracker</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>hiccup</pattern>
                                <shadedPattern>org.apache.storm.shade.hiccup</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>ring</pattern>
                                <shadedPattern>org.apache.storm.shade.ring</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>clj_time</pattern>
                                <shadedPattern>org.apache.storm.shade.clj_time</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>clj-time</pattern>
                                <shadedPattern>org.apache.storm.shade.clj-time</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>com.fasterxml</pattern>
                                <shadedPattern>org.apache.storm.shade.com.fasterxml</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>org.apache.thrift</pattern>
                                <!-- This pattern is inconsistent for backwards compatibility purposes. -->
                                <shadedPattern>org.apache.storm.thrift</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>org.jboss.netty</pattern>
                                <shadedPattern>org.apache.storm.shade.org.jboss.netty</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>com.google.common</pattern>
                                <shadedPattern>org.apache.storm.shade.com.google.common</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>com.google.thirdparty</pattern>
                                <shadedPattern>org.apache.storm.shade.com.google.thirdparty</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>org.apache.http</pattern>
                                <shadedPattern>org.apache.storm.shade.org.apache.http</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>org.apache.curator</pattern>
                                <shadedPattern>org.apache.storm.shade.org.apache.curator</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>org.apache.zookeeper</pattern>
                                <shadedPattern>org.apache.storm.shade.org.apache.zookeeper</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>org.apache.jute</pattern>
                                <shadedPattern>org.apache.storm.shade.org.apache.jute</shadedPattern>
                            </relocation>
                            <relocation>
                              <pattern>carbonite</pattern>
                              <shadedPattern>org.apache.storm.shade.carbonite</shadedPattern>
                            </relocation>
                            <relocation>
                              <pattern>com.twitter.chill</pattern>
                              <shadedPattern>org.apache.storm.shade.com.twitter.chill</shadedPattern>
                            </relocation>
                            <relocation>
                              <pattern>org.tukaani.xz</pattern>
                              <shadedPattern>org.apache.storm.shade.org.tukaani.xz</shadedPattern>
                            </relocation>
                            <relocation>
                              <pattern>org.yaml.snakeyaml</pattern>
                              <shadedPattern>org.apache.storm.shade.org.yaml.snakeyaml</shadedPattern>
                            </relocation>
                            <relocation>
                              <pattern>org.jgrapht</pattern>
                              <shadedPattern>org.apache.storm.shade.org.jgrapht</shadedPattern>
                            </relocation>
                            <relocation>
                              <pattern>org.fusesource</pattern>
                              <shadedPattern>org.apache.storm.shade.org.fusesource</shadedPattern>
                            </relocation>
                            <relocation>
                              <pattern>com.metamx.http.client</pattern>
                              <shadedPattern>org.apache.storm.shade.com.metamx.http.client</shadedPattern>
                            </relocation>
                            <relocation>
                              <pattern>org.apache.commons.io</pattern>
                              <shadedPattern>org.apache.storm.shade.org.apache.commons.io</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>org.apache.commons.compress</pattern>
                                <shadedPattern>org.apache.storm.shade.org.apache.commons.compress</shadedPattern>
                            </relocation>
                            <relocation>
                              <pattern>org.apache.commons.codec</pattern>
                              <shadedPattern>org.apache.storm.shade.org.apache.commons.codec</shadedPattern>
                            </relocation>
                            <relocation>
                              <pattern>org.apache.commons.fileupload</pattern>
                              <shadedPattern>org.apache.storm.shade.org.apache.commons.fileupload</shadedPattern>
                            </relocation>
                            <relocation>
                              <pattern>org.apache.commons.exec</pattern>
                              <shadedPattern>org.apache.storm.shade.org.apache.commons.exec</shadedPattern>
                            </relocation>
                            <relocation>
                              <pattern>org.apache.commons.lang</pattern>
                              <shadedPattern>org.apache.storm.shade.org.apache.commons.lang</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>org.apache.commons.collections</pattern>
                                <shadedPattern>org.apache.storm.shade.org.apache.commons.collections</shadedPattern>
                            </relocation>
                            <relocation>
                              <pattern>org.json.simple</pattern>
                              <shadedPattern>org.apache.storm.shade.org.json.simple</shadedPattern>
                            </relocation>
                            <relocation>
                              <pattern>clojure.math</pattern>
                              <shadedPattern>org.apache.storm.shade.clojure.math</shadedPattern>
                            </relocation>
                            <relocation>
                              <pattern>clojure.tools.cli</pattern>
                              <shadedPattern>org.apache.storm.shade.clojure.tools.cli</shadedPattern>
                            </relocation>
                            <relocation>
                              <pattern>cljs.tools.cli</pattern>
                              <shadedPattern>org.apache.storm.shade.cljs.tools.cli</shadedPattern>
                            </relocation>
                            <relocation>
                              <pattern>clojure.tools.macro</pattern>
                              <shadedPattern>org.apache.storm.shade.clojure.tools.macro</shadedPattern>
                            </relocation>
                            <relocation>
                              <pattern>org.joda.time</pattern>
                              <shadedPattern>org.apache.storm.shade.org.joda.time</shadedPattern>
                            </relocation>
                            <relocation>
                              <pattern>org.eclipse.jetty</pattern>
                              <shadedPattern>org.apache.storm.shade.org.eclipse.jetty</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>metrics.core</pattern>
                                <shadedPattern>org.apache.storm.shade.metrics.core</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>metrics.counters</pattern>
                                <shadedPattern>org.apache.storm.shade.metrics.counters</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>metrics.gauges</pattern>
                                <shadedPattern>org.apache.storm.shade.metrics.gauges</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>metrics.histograms</pattern>
                                <shadedPattern>org.apache.storm.shade.metrics.histograms</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>metrics.meters</pattern>
                                <shadedPattern>org.apache.storm.shade.metrics.meters</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>metrics.reporters</pattern>
                                <shadedPattern>org.apache.storm.shade.metrics.reporters</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>metrics.timers</pattern>
                                <shadedPattern>org.apache.storm.shade.metrics.timers</shadedPattern>
                            </relocation>
                            <relocation>
                                <pattern>metrics.utils</pattern>
                                <shadedPattern>org.apache.storm.shade.metrics.utils</shadedPattern>
                            </relocation>
                        </relocations>
                        <transformers>
                            <transformer implementation="org.apache.storm.maven.shade.clojure.ClojureTransformer" />
                        </transformers>
                        <filters>
                            <!-- Several of these filters remove the .clj files from the shaded dependencies, even though only .clj files are in these jars.
                                 The reason for this is a bit complex, but intentional.  During the build process all of the dependency .clj files are
                                 compiled down into .class files, and included in storm-core.jar.  The regular shade transformer handles these in 
                                 the majority of cases correctly.  However, the Clojure-Transformer does not shade everything correctly all the
                                 time.  Instead of spending a lot of time to get the Clojure-Transformer to parse Clojure correctly we opted to remove
                                 the .clj files from the uber jar. -->
                            <filter><artifact>metrics-clojure:*</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter>
                            <filter><artifact>org.clojure:core.incubator</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter>
                            <filter><artifact>cheshire:cheshire</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter>
                            <filter><artifact>org.clojure:tools.logging</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter>
                            <filter><artifact>org.clojure:tools.namespace</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter>
                            <filter><artifact>org.clojure:math.numeric-tower</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter>
                            <filter><artifact>org.clojure:tools.macro</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter>
                            <filter><artifact>org.clojure:tools.cli</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter>
                            <filter><artifact>ns-tracker:ns-tracker</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter>
                            <filter><artifact>clout:clout</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter>
                            <filter><artifact>hiccup:hiccup</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter>
                            <filter><artifact>clj-time:clj-time</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter>
                            <filter><artifact>ring:*</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter>
                            <filter><artifact>compojure:compojure</artifact><excludes><exclude>**/*.clj</exclude></excludes></filter>
                            <filter>
                                <artifact>org.apache.thrift:*</artifact>
                                <excludes>
                                    <exclude>META-INF/LICENSE.txt</exclude>
                                    <exclude>META-INF/NOTICE.txt</exclude>
                                </excludes>
                            </filter>
                            <filter>
                                <artifact>io.netty:netty</artifact>
                                <excludes>
                                    <exclude>META-INF/LICENSE.txt</exclude>
                                    <exclude>META-INF/NOTICE.txt</exclude>
                                </excludes>
                            </filter>
                            <filter>
                                <artifact>org.apache.zookeeper:zookeeper</artifact>
                                <excludes>
                                    <exclude>LICENSE.txt</exclude>
                                </excludes>
                            </filter>
                            <filter>
                                <artifact>org.apache.commons:commons-exec</artifact>
                                <excludes>
                                    <exclude>META-INF/LICENSE.txt</exclude>
                                    <exclude>META-INF/NOTICE.txt</exclude>
                                </excludes>
                            </filter>
                            <filter>
                                <artifact>commons-collections:commons-collections</artifact>
                                <excludes>
                                    <exclude>META-INF/LICENSE.txt</exclude>
                                    <exclude>META-INF/NOTICE.txt</exclude>
                                </excludes>
                            </filter>
                            <filter>
                                <artifact>commons-io:commons-io</artifact>
                                <excludes>
                                    <exclude>META-INF/LICENSE.txt</exclude>
                                    <exclude>META-INF/NOTICE.txt</exclude>
                                </excludes>
                            </filter>
                            <filter>
                                <artifact>commons-codec:commons-codec</artifact>
                                <excludes>
                                    <exclude>META-INF/LICENSE.txt</exclude>
                                    <exclude>META-INF/NOTICE.txt</exclude>
                                </excludes>
                            </filter>
                            <filter>
                                <artifact>commons-fileupload:commons-fileupload</artifact>
                                <excludes>
                                    <exclude>META-INF/LICENSE.txt</exclude>
                                    <exclude>META-INF/NOTICE.txt</exclude>
                                </excludes>
                            </filter>
                            <filter>
                                <artifact>commons-lang:commons-lang</artifact>
                                <excludes>
                                    <exclude>META-INF/LICENSE.txt</exclude>
                                    <exclude>META-INF/NOTICE.txt</exclude>
                                </excludes>
                            </filter>
                            <filter>
                                <artifact>joda-time:joda-time</artifact>
                                <excludes>
                                    <exclude>META-INF/LICENSE.txt</exclude>
                                    <exclude>META-INF/NOTICE.txt</exclude>
                                </excludes>
                            </filter>
                            <filter>
                                <artifact>*:*</artifact>
                                <excludes>
                                    <exclude>META-INF/*.SF</exclude>
                                    <exclude>META-INF/*.sf</exclude>
                                    <exclude>META-INF/*.DSA</exclude>
                                    <exclude>META-INF/*.dsa</exclude>
                                    <exclude>META-INF/*.RSA</exclude>
                                    <exclude>META-INF/*.rsa</exclude>
                                    <exclude>META-INF/*.EC</exclude>
                                    <exclude>META-INF/*.ec</exclude>
                                    <exclude>META-INF/MSFTSIG.SF</exclude>
                                    <exclude>META-INF/MSFTSIG.RSA</exclude>
                                </excludes>
                            </filter>
                        </filters>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>org.apache.storm</groupId>
                            <artifactId>maven-shade-clojure-transformer</artifactId>
                            <version>${project.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
    
    
    
  • 相关阅读:
    分布式系统中的Session问题
    HotSpot VM运行时---命令行选项解析
    K大数查询
    [DarkBZOJ3636] 教义问答手册
    小朋友和二叉树
    [COCI2018-2019#2] Sunčanje
    小SY的梦
    [HDU6722 & 2019百度之星初赛四 T4] 唯一指定树
    [HDU6800] Play osu! on Your Tablet
    [NOI2007] 货币兑换
  • 原文地址:https://www.cnblogs.com/tonggc1668/p/7942906.html
Copyright © 2020-2023  润新知