隨筆-95  評論-31  文章-10  trackbacks-0
          第一種:可執行jar與依賴分開,依賴在lib目錄里,需要jar和lib目錄在同級目錄,
          優點:jar文件很小 
          缺點:需要放置lib文件夾在平級目錄

           1            <plugin>
           2                <groupId>org.apache.maven.plugins</groupId>
           3                <artifactId>maven-jar-plugin</artifactId>
           4                <version>2.6</version>
           5                <configuration>
           6                    <archive>
           7                        <manifest>
           8                            <addClasspath>true</addClasspath>
           9                            <classpathPrefix>lib/</classpathPrefix>
          10                            <mainClass>com.xxx.xxxService</mainClass>
          11                        </manifest>
          12                    </archive>
          13                </configuration>
          14            </plugin>
          15            <plugin>
          16                <groupId>org.apache.maven.plugins</groupId>
          17                <artifactId>maven-dependency-plugin</artifactId>
          18                <version>2.10</version>
          19                <executions>
          20                    <execution>
          21                        <id>copy-dependencies</id>
          22                        <phase>package</phase>
          23                        <goals>
          24                            <goal>copy-dependencies</goal>
          25                        </goals>
          26                        <configuration>
          27                            <outputDirectory>${project.build.directory}/lib</outputDirectory>
          28                        </configuration>
          29                    </execution>
          30                </executions>
          31            </plugin>

          第二種:把所有依賴打進同一個jar包里。
          缺點:jar文件會比較大,同時該插件有個bug會缺失spring的xds文件,導致無法運行jar,同時如果同級目錄還有其它可執行jar文件依賴可能會產生沖突
          優點:方便快捷,打包完直接就能運行。

           1            <plugin>
           2                <artifactId>maven-assembly-plugin</artifactId>
           3                <configuration>
           4                    <descriptorRefs>
           5                        <descriptorRef>jar-with-dependencies</descriptorRef>
           6                    </descriptorRefs>
           7                    <archive>
           8                        <manifest>
           9                            <mainClass>com.xxx.xxxService</mainClass>
          10                        </manifest>
          11                    </archive>
          12                </configuration>
          13                <executions>
          14                    <execution>
          15                        <id>make-assembly</id>
          16                        <phase>package</phase>
          17                        <goals>
          18                            <goal>single</goal>
          19                        </goals>
          20                    </execution>
          21                </executions>
          22            </plugin>

          第三種:所有依賴打到同一個jar文件里。
          缺點:jar文件過大、如果同級目錄有其它可執行jar,依賴可能會產生沖突
          優點:不會有任何bug,直接打成可執行jar文件,最省事。

           1            <plugin>
           2                <groupId>org.apache.maven.plugins</groupId>
           3                <artifactId>maven-shade-plugin</artifactId>
           4                <version>2.4.3</version>
           5                <executions>
           6                    <execution>
           7                        <phase>package</phase>
           8                        <goals>
           9                            <goal>shade</goal>
          10                        </goals>
          11                        <configuration>
          12                            <filters>
          13                                <filter>
          14                                    <artifact>*:*</artifact>
          15                                    <excludes>
          16                                        <exclude>META-INF/*.SF</exclude>
          17                                        <exclude>META-INF/*.DSA</exclude>
          18                                        <exclude>META-INF/*.RSA</exclude>
          19                                    </excludes>
          20                                </filter>
          21                            </filters>
          22                            <transformers>
          23                                <transformer
          24                                        implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
          25                                    <resource>META-INF/spring.handlers</resource>
          26                                </transformer>
          27                                <transformer
          28                                        implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
          29                                    <resource>META-INF/spring.schemas</resource>
          30                                </transformer>
          31                                <transformer
          32                                        implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
          33                                    <resource>META-INF/spring.tooling</resource>
          34                                </transformer>
          35                                <transformer
          36                                        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
          37                                    <mainClass>com.xxx.xxxInvoke</mainClass>
          38                                </transformer>
          39                            </transformers>
          40                            <minimizeJar>true</minimizeJar>
          41                            <shadedArtifactAttached>true</shadedArtifactAttached>
          42                        </configuration>
          43                    </execution>
          44                </executions>
          45            </plugin>















          posted on 2017-05-03 10:08 朔望魔刃 閱讀(15137) 評論(0)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 来宾市| 济南市| 安远县| 巴里| 德保县| 池州市| 弥勒县| 明星| 东光县| 沂源县| 蒲江县| 库尔勒市| 丹凤县| 偏关县| 湘潭市| 浙江省| 乌鲁木齐市| 漳平市| 永仁县| 阜阳市| 奉节县| 昌江| 澄江县| 印江| 筠连县| 湛江市| 溆浦县| 威宁| 缙云县| 肥东县| 申扎县| 南和县| 磴口县| 昭通市| 井研县| 湟中县| 阿拉善盟| 天全县| 准格尔旗| 涟水县| 信阳市|