Maven打jar包的三种方式

Maven打jar包的三种方式


不包含依赖jar包

该方法打包的jar,不包含依赖的jar包,也没有指定入口类。

<build>
    <plugins>
        <plugin>
            <!-- 指定项目编译时的java版本和编码方式 -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <target>1.8</target>
                <source>1.8</source>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
</build>

将依赖jar包输出到指定目录

该方法打包的jar,指定了入口类,可以直接使用java -jar project.jar执行,

但是第三方依赖存在一个指定的外部目录下,迁移时需将jar和依赖目录一起迁移。

<build>
    <plugins>
        <plugin>
            <!-- 指定项目编译时的java版本和编码方式 -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <target>1.8</target>
                <source>1.8</source>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>3.1.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.netty.client.SignalClient</mainClass> <!-- 指定入口类 -->
                        <addClasspath>true</addClasspath> <!-- 在jar的MF文件中生成classpath属性 -->
                        <classpathPrefix>lib/</classpathPrefix> <!-- classpath前缀,即依赖jar包的路径 -->
                    </manifest>
                </archive>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>3.1.1</version>
            <executions>
                <execution>
                    <id>copy</id>
                    <phase>install</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <!-- 指定依赖包的输出路径,需与上方的classpathPrefix保持一致 -->
                        <outputDirectory>${project.build.directory}/lib</outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

将项目依赖和项目打成一个jar包

该方法打包的jar,指定了入口类,可以直接使用java -jar project.jar执行,

并且将第三方依赖打到了项目jar包中。

<build>
    <plugins>
        <plugin>
            <!-- 指定项目编译时的java版本和编码方式 -->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <target>1.8</target>
                <source>1.8</source>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>3.1.0</version>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>com.netty.client.SignalClient</mainClass> <!-- 指定入口类路径 -->
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef> <!-- jar包后缀,生成的jar包形式为:project-1.0-SNAPSHOT-jar-with-dependencies.jar -->
                </descriptorRefs>
            </configuration>
            <!-- 添加此项后,可直接使用mvn package | mvn install -->
            <!-- 不添加此项,需直接使用mvn package assembly:single -->
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

原文地址:https://www.cnblogs.com/jinjiyese153/p/9374015.html

时间: 2024-12-24 22:55:46

Maven打jar包的三种方式的相关文章

从外部导入jar包的三种方式

我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间.下面配图说明3种Eclipse引入jar包的方式. 1.最常用的普通操作方式:基本步骤式 右击“项目”→选择Properties,在弹出的对话框左侧列表中选择Java Build Path,如下图所示:选择Add External JARs,就可以逐个(也可以选择多个jar,但是限制在同一个文件夹中)添加第三方引用jar包. 上面这种方式的操作具有通用性,但是每次创建项

Intellij IDEA 添加jar包的三种方式

一.直接复制:(不推荐)方法:直接将硬盘上的jar包复制粘贴到项目的lib目录下即可. 注意:1.对于导入的eclipse项目,该方式添加的jar包没有任何反应,用make编译项目会报错2.对于在idea中创建的项目,该方式添加jar包,编译不报错,但是打开Structure会有"...jar ... is missing ..."的提示,需要点击"Fix"或红灯泡解决.  二.通过Modules的Dependencies添加:(推荐)1.打开 File ->

maven 引入外部jar包的几种方式(转)

原文链接: maven 引入外部jar包的几种方式 方式1:dependency 本地jar包 <dependency> <groupId>com.hope.cloud</groupId> <!--自定义--> <artifactId>cloud</artifactId> <!--自定义--> <version>1.0</version> <!--自定义--> <scope>

eclipse maven 打war包的几种方式

第一种:利用pom.xml文件打包. 右键pom.xml文件,选择Debug as或Run as 都行.但需要选择Maven install  打包 执行成功后,日志会打印出位置(看自己配置是否日志输出).如果没有输出,在默认的C盘.m2文件夹中 第二种方式:右键项目.选择Debug as 或 Run as .但是这个时候要选择 Debug configurations 先Browse Workspace  选择需要打包的项目 ,然后在Goals:中输入clean install  命令  De

maven 引入外部jar包的几种方式

方式1:dependency 本地jar包 <dependency> <groupId>com.hope.cloud</groupId> <!--自定义--> <artifactId>cloud</artifactId> <!--自定义--> <version>1.0</version> <!--自定义--> <scope>system</scope> <!

maven生成war包的两种方式

war包即对WEB应用程序进行打包,用于应用容器的部署.如在jboss中只要把war包丢入deploy目录下即可发布自己的应用了.打包方式有很多中,很多工具本身就支持此功能.下面主要介绍通过maven来操作的两种方式: 方法一: 即第一反应的那种啦,就是利用maven的maven-war-plugin. <build> <plugins> ...... <plugin> <groupId>org.apache.maven.plugins</groupI

Eclipse下导入外部jar包的3种方式

我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间.下面配图说明3种Eclipse引入jar包的方式. 1.最常用的普通操作方式:基本步骤式 右击“项目”→选择Properties,在弹出的对话框左侧列表中选择Java Build Path,如下图所示:选择Add External JARs,就可以逐个(也可以选择多个jar,但是限制在同一个文件夹中)添加第三方引用jar包. 上面这种方式的操作具有通用性,但是每次创建项

安装第三方jar包的两种方式

由于部分第三放jar包没有放到maven中央仓库,而项目中又依赖了这些jar包,那么如何安装?我实践了两种,特做记录. 一.安装到 nexus 私有库: 在 3rd party 仓库下有个 Artifact Upload 选项,选择已经下载到本机的 jar 包,再点击 Add Artiface 按钮,然后需要在上方设置相关属性值,最后点击 Upload Artifact(s) 等待上传完成.图例: 二.安装到本地的 maven 仓库: 命令行打开jar文件所在文件夹,注意设置groupId\ar

[转]Eclipse下导入外部jar包的3种方式

我们在用Eclipse开发程序的时候,经常要用到第三方jar包.引入jar包不是一个小问题,由于jar包位置不清楚,而浪费时间.下面配图说明3种Eclipse引入jar包的方式. 1.最常用的普通操作方式:基本步骤式 右击“项目”→选择Properties,在弹出的对话框左侧列表中选择Java Build Path,如下图所示:选择Add External JARs,就可以逐个(也可以选择多个jar,但是限制在同一个文件夹中)添加第三方引用jar包. 上面这种方式的操作具有通用性,但是每次创建项