maven将依赖整体打成一个jar包

POM配置

    <properties>

       <maven.encoding>UTF-8</maven.encoding>
        <maven.plugin.compiler.version>3.1</maven.plugin.compiler.version>
        <maven.plugin2.5.version>2.5</maven.plugin2.5.version>
        <java.version>1.7</java.version>

    </properties>


    <build>
        <finalName>jar包名称</finalName>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>${maven.plugin2.5.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <!-- <version>${maven.plugin.compiler.version}</version> -->
                    <version>${maven.plugin2.5.version}</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                        <encoding>${maven.encoding}</encoding>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>${maven.plugin2.5.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>${maven.plugin2.5.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>${maven.plugin2.5.version}</version>
                    <configuration>
                        <encoding>${maven.encoding}</encoding>
                    </configuration>
                </plugin>
         <plugin>  
            <groupId>org.apache.maven.plugins</groupId>  
            <artifactId>maven-shade-plugin</artifactId>  
            <version>2.4.1</version>  
            <executions>  
                <execution>  
                    <phase>package</phase>  
                    <goals>  
                        <goal>shade</goal>  
                    </goals>  
                    <configuration> 
                    <filters>
                        <filter>
                            <artifact>*:*</artifact>
                            <excludes>
                                <exclude>META-INF/*.SF</exclude>
                                <exclude>META-INF/*.DSA</exclude>
                                <exclude>META-INF/*.RSA</exclude>
                            </excludes>
                        </filter>
                    </filters>
                        <transformers>  
                            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">  
                                <mainClass>main函数类全路径</mainClass>  
                            </transformer>  
                            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">  
                                <resource>META-INF/spring.handlers</resource>  
                            </transformer>  
                            <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">  
                                <resource>META-INF/spring.schemas</resource>  
                            </transformer>  
                        </transformers>  
                    </configuration>  
                </execution>  
            </executions>  
         </plugin>  
        </plugins>
    </build>


运行jar包命令

方式一:一般运行包含manifest的jar包,可以使用

java -jar <jar-file-name>.jar

方式二:如果jar里没有 manifest,则可以使用

java -cp foo.jar full.package.name.ClassName

方式三:当main类依赖多个jar时,可以把多个jar打包到一个目录,然后用-Djava.ext.dirs指定该目录,引用依赖的多个jar。

java -Djava.ext.dirs=<多个jar包的目录> com.test.HelloWordMain

如果用-cp则需要写每一个jar,很麻烦。

猜你喜欢

转载自blog.csdn.net/qq_36807862/article/details/81386663