zoukankan      html  css  js  c++  java
  • 使用Maven Assembly plugin将依赖打包进jar

     一个Eclipse的工程,在pom中配置了若干依赖,需要将pom中所有的依赖全部打包进一个jar包中,可以选择的方案有maven-assembly-plugin和fatjar。以前采用fatjar进行打包,但是fatjar有不少问题,

    1. 最近一次更新是在09年,无法支持新版本的eclipse。

    2.支持最高的jdk版本是1.7  

    3. 打包速度慢(不是一般的慢)

    4. 打成的jar包体积略大。

      下面是一个Eclipse的工程,其中含有不少的maven依赖包:

    image

    采用export成runnable jar包的方式是行不通的,正确做法是在工程的pom.xml文件中配置maven-assembly-plugin,pom.xml的配置如下:

    复制代码
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.cetc.di</groupId>
        <artifactId>hdfs</artifactId>
        <version>1.0</version>
        <packaging>jar</packaging>
    
        <name>hdfs</name>
        <url>http://maven.apache.org</url>
    
    
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <jdk.version>1.8</jdk.version>
        </properties>
    
        <build>
            <plugins>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.3.2</version>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
    
                <plugin>
                       <artifactId> maven-assembly-plugin </artifactId>
                       <configuration>
                            <descriptorRefs>
                                 <descriptorRef>jar-with-dependencies</descriptorRef>
                            </descriptorRefs>
                            <archive>
                                 <manifest>
                                      <mainClass>com.cetc.di.App</mainClass>
                                 </manifest>
                            </archive>
                       </configuration>
                       <executions>
                            <execution>
                                 <id>make-assembly</id>
                                 <phase>package</phase>
                                 <goals>
                                      <goal>single</goal>
                                 </goals>
                            </execution>
                       </executions>
                  </plugin>
                
    
            </plugins>
        </build>
    
  • 相关阅读:
    【POJ 3162】 Walking Race (树形DP-求树上最长路径问题,+单调队列)
    【POJ 2152】 Fire (树形DP)
    【POJ 1741】 Tree (树的点分治)
    【POJ 2486】 Apple Tree (树形DP)
    【HDU 3810】 Magina (01背包,优先队列优化,并查集)
    【SGU 390】Tickets (数位DP)
    【SPOJ 2319】 BIGSEQ
    【SPOJ 1182】 SORTBIT
    【HDU 5456】 Matches Puzzle Game (数位DP)
    【HDU 3652】 B-number (数位DP)
  • 原文地址:https://www.cnblogs.com/panxuejun/p/6667599.html
Copyright © 2011-2022 走看看