Maven的 install 和 打包

简介: 关于Maven的 install 和 打包

关于安装

进入pom.xml文件目录下,使用命令mvn install

当然也可以使用类似idea这类本身已经集成好maven插件按钮的编辑器进行安装

安装过程会输出安装jar包的目录信息,同样的,跟class编译后的目标文件一起,放在target目录下

注意:开发编译过程中,如果只 编译 mvn compile,修改的代码是不会生效的,必须重新执行install生成新的包。再执行jetty run(Windows下使用jetty作为服务器)过程自然会解析jar包

[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ thomson-content-rpc-api ---

[INFO] Building jar: E:\JavaDevelop\thomson-content\thomson-content-rpc-api\target\thomson-content-rpc-api.jar

在maven里面,install是安装的意思,也就是说将代码安装到本地仓库中,成为可运行的包。

通常一个成熟的项目,所依赖的外部类比较多,因此在第一次install代码的时候,会花费较长的时间。例如某个项目,我的本地仓库就达到了1.2G。

 

如何创建自己的本地仓库?

修改maven安装目录下的/conf/settings.xml文件

网络异常,图片无法展示
|

<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 http://maven.apache.org/xsd/settings-1.2.0.xsd">

 <!-- localRepository

  | The path to the local repository maven will use to store artifacts.

  |

  | Default: ${user.home}/.m2/repository

 -->

<localRepository>E:/MavenRepository</localRepository>

网络异常,图片无法展示
|

修改完后,执行 mvn help:system,会自动下载基础的工程到本地仓库

 

通常情况下,类似idea编辑器会把仓库设定在c盘,我们可以自行修改自己想要存放的目录

File -> Settings,勾选以下选项框即可修改目录。

再执行mvn命令时,新生成class文件和jar包会放置在本地仓库中

 

 

关于打包

很方便,可以根据需要设置权限(按Linux的权限定义),最终生成的压缩包会放在target目录下

pom.xml中添加插件,指定assembly.xml文件

网络异常,图片无法展示
|

<plugin>

   <artifactId>maven-assembly-plugin</artifactId>

   <configuration>

       <descriptor>src/main/assembly/assembly.xml</descriptor>

   </configuration>

   <executions>

       <execution>

           <id>make-assembly</id>

           <phase>package</phase>

           <goals>

               <goal>single</goal>

           </goals>

       </execution>

   </executions>

</plugin>

网络异常,图片无法展示
|

 

配置包后缀和设置权限

需要在src目录下创建assembly目录,目录下创建assemly.xml文件,和bin目录来放置一些执行脚本

网络异常,图片无法展示
|

assembly.xml
<
assembly>

   <id>assembly</id>

   <formats>
    <!-- 生成包后缀名 -->

       <format>tar.gz</format>

   </formats>

   <includeBaseDirectory>true</includeBaseDirectory>

   <fileSets>

       <fileSet>

           <directory>src/main/assembly/bin</directory>

           <outputDirectory>bin</outputDirectory>
      <!-- 设置linux权限 -->

           <fileMode>0755</fileMode>

       </fileSet>

       <fileSet>

           <directory>src/main/assembly/conf</directory>

           <outputDirectory>conf</outputDirectory>

           <fileMode>0644</fileMode>

       </fileSet>

   </fileSets>

   <dependencySets>

       <dependencySet>

           <outputDirectory>lib</outputDirectory>

           <scope>runtime</scope>

       </dependencySet>

   </dependencySets>

</assembly>



目录
相关文章
|
13天前
|
Java 测试技术 Maven
maven 打包命令
maven 打包命令
18 6
|
12天前
|
Java Linux Maven
IDEA如何用maven打包(界面和命令两种方式)
【10月更文挑战第14天】本文介绍了两种Maven项目打包方法:命令行与IDEA界面。首先确保已安装Maven并配置环境变量,通过`mvn -v`检查安装。命令行打包需进入项目目录,执行`mvn package`,之后在`target`目录查看结果。IDEA打包则需配置Maven路径,打开Maven Projects窗口,双击Lifecycle下的`package`阶段,同样在`target`目录查找生成文件,并在Build窗口查看日志以排查问题。
204 1
|
15天前
|
Java Shell Maven
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
Flink-11 Flink Java 3分钟上手 打包Flink 提交任务至服务器执行 JobSubmit Maven打包Ja配置 maven-shade-plugin
54 4
|
17天前
|
Java Maven
用graalvm将maven项目打包成可执行文件
本文介绍了如何使用GraalVM将Maven项目打包成可执行文件,包括引入依赖和插件、编写代码、执行打包命令以及运行查看结果的完整过程。
61 0
用graalvm将maven项目打包成可执行文件
|
17天前
|
Java Maven
maven打包出现没有主类的原因,详细分析并解决
本文分析了使用Maven打包Java应用时找不到或无法加载主类的问题,通常是由于未配置主类或打包时未包含依赖,并通过添加Maven插件解决了依赖问题,同时指出了JavaFX应用可能遇到的运行时组件缺失的错误。
82 0
maven打包出现没有主类的原因,详细分析并解决
|
4月前
|
Java 测试技术 Maven
Maven打包使用多线程加速构建过程
Maven打包使用多线程加速构建过程
714 0
|
10天前
|
Java 应用服务中间件 Maven
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
122 0
|
2月前
|
Java Maven 容器
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
使用IntelliJ IDEA的Artifacts功能,可以将项目依赖的第三方jar包打包进jar文件中,实现双击jar包即可直接运行。
Maven使用IDEA自带工具打包,同时将lib下的jar包打入,双击jar包可直接运行
|
4月前
|
Java Maven
maven跳过测试清理、打包、安装
maven跳过测试清理、打包、安装
118 4
|
3月前
|
运维 Java Devops
阿里云云效操作报错合集之进行Maven打包时,遇到报错"ERR: No email loop found by ",该怎么办
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。