【Maven】常用命令、插件管理、私服nexus

简介: 【Maven】常用命令、插件管理、私服nexus

常用命令



  Maven提供了一系列常用命令,用于构建、测试和管理项目。以下是一些常用的Maven命令示例:


  mvn clean: 清除项目中生成的输出目录(如 target 目录)。


  mvn compile: 编译项目源代码。


  mvn test: 运行项目的单元测试。


  mvn package: 打包项目,生成可发布的构建物(如 JAR、WAR 或其它格式)。


  mvn install: 将项目构建物安装到本地 Maven 仓库,以供其他项目使用。


  mvn deploy: 将项目构建物部署到远程 Maven 仓库,以供其他开发人员访问和使用。


  mvn clean install: 清除项目并重新构建并安装项目。


  mvn dependency:tree: 显示项目的依赖树,包括所有传递性依赖。


  mvn help:system: 显示 Maven 系统信息。


  mvn archetype:generate: 根据 Maven 构建模板生成项目骨架。


插件管理


  在Maven中,插件是一种扩展机制,用于提供额外的构建、测试、部署和其他项目管理功能。插件可以通过Maven的插件管理系统进行管理和配置。下面是插件管理Maven的一些常见操作:


  定义插件:在项目的pom.xml文件中,使用<build>元素来定义插件。在<plugins>元素中添加插件的配置,包括插件坐标、执行目标、配置参数等。


  集成插件:Maven有一些常用的内置插件,如maven-compiler-pluginmaven-surefire-plugin等。这些插件可以直接在项目的pom.xml文件中通过<plugins>元素配置,无需额外的步骤。


  自定义插件:除了使用内置插件,您还可以编写自己的插件。Maven 使用 Apache Maven 插件插件(Apache Maven Plugin Plugin)来创建和管理插件项目。可以使用Maven Archetype来生成插件项目的骨架。


  生命周期绑定:Maven插件可以与Maven生命周期进行绑定。通过为插件配置<executions>元素,可以将插件的执行目标绑定到特定的构建阶段,例如编译、测试、打包等。


  插件版本管理:在项目的<build>元素中的<pluginManagement>元素中指定插件版本,可以对插件的版本进行统一管理。这样可以确保所有模块使用相同版本的插件,提高构建的一致性和可维护性。


  运行插件:通过运行mvn plugin-name:goal命令来执行插件的目标。例如,mvn clean, mvn compile, mvn test, mvn package等都是运行插件的预定义目标。


  插件配置:使用<configuration>元素可以对插件进行详细的配置。可以在项目的pom.xml文件中根据插件的需求进行相应的配置,以满足特定的构建要求。


  Maven的核心仅仅定义了抽象的生命周期,具体的任务都是交由插件完成的。每个插件都能实现多个功能,每个功能就是一个插件目标。


  Maven的生命周期与插件目标相互绑定,以完成某个具体的构建任务。


  例如:compile 就是插件 maven-compiler-plugin 的一个目标


  Maven实际上是一个依赖插件执行的框架,每个任务实际上是由插件完成。


私服nexus


Nexus3


 Nexus3 是一个仓库管理器,它极大地简化了本地内部仓库的维护和外部仓库的访问。


 平常我们在获取 maven 仓库资源的时候,都是从 maven 的官方(或者国内的镜像)获取,但是这都不是最好的方案,假如在同一个环境内,一个团队的多个开发人员同样的依赖都要从远程获取一遍,从网络方面来说,这是非常耗时的。这时候就需要在局域网内部署一个 Nexus3 用来管理 Maven(apt、yum、gradle、pypi、docker 等等)仓库。


 有些公司都不提供外网给项目组人员,因此就不能使用 maven 访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建 Nexus3 私服,然后开发人员连到这台私服上,这样的话就可以通过这台搭建了 Nexus3 私服的电脑访问 maven 的远程仓库。



配置私服


  发布jar到私服需要的配置


<servers>
  <!-- 发布版 -->
  <server>
    <id>releases</id>
    <username>admin</username>
    <password>admin123</password>
  </server>
  <!-- 快照版 -->
  <server>
    <id>snapshots</id>
    <username>admin</username>
    <password>admin123</password>
  </server>
</servers>


  下载私服仓库jar需要的配置


<mirrors>
  <mirror>
    <id>nexus</id>
    <mirrorOf>*</mirrorOf>
    <name>nexus maven</name>
    <url>http://127.0.0.1:8081/repository/maven-public/</url>
  </mirror>
</mirrors>



项目pom中的配置


 准备一个 maven 项目,在 pom.xml 中添加一段配置:


<distributionManagement>
  <repository>
    <id>releases</id>
    <name>maven-releases</name>
    <url>http://127.0.0.1:8081/repository/maven-releases/</url>
    <uniqueVersion>true</uniqueVersion>
  </repository>
  <snapshotRepository>
    <id>snapshots</id>
    <name>maven-snapshots</name>
    <url>http://127.0.0.1:8081/repository/maven-snapshots/</url>
    <uniqueVersion>true</uniqueVersion>
  </snapshotRepository>
</distributionManagement>



发布时区分正式版、快照版


  发布只要执行命令mvn deploy即可。


  这里配置了两个仓库,一个正式版、一个快照版,maven 是如何区分你要发布到哪一个仓库呢?


  如果你的版本带着 releases,也就是<version>0.0.1-releases</version>,就会发布到 maven-releases。


  如果你的版本带着 snapshots,也就是<version>0.0.1-snapshots</version>,就会发布到 maven-snapshots。

相关文章
|
5天前
|
Java Maven
SpringBoot项目的用maven插件打包报Test错误
SpringBoot项目的用maven插件打包报Test错误
|
7天前
|
Java 测试技术 Maven
Maven 插件
Maven插件负责执行生命周期中的阶段,如clean、default(build)、site。生命周期阶段是Maven的标准接口,实际操作由相应插件实现,如maven-clean-plugin执行clean阶段。Maven是一个基于插件的框架,插件用于生成jar/war、编译代码、运行单元测试、生成文档和报告。通过`mvn [plugin-name]:[goal-name]`调用插件目标,如`mvn compiler:compile`用于编译Java代码。
|
7天前
|
IDE Java Apache
常用 Maven 插件大全(速度收藏)
常用 Maven 插件大全(速度收藏)
106 1
|
7天前
|
IDE Java Apache
常用 Maven 插件大全
常用 Maven 插件大全
14 0
|
7天前
|
存储 Java Maven
|
7天前
|
Java Linux Maven
Linux系统Docker部署Nexus Maven并实现远程访问本地管理界面
Linux系统Docker部署Nexus Maven并实现远程访问本地管理界面
106 3
|
7天前
|
Java Linux Maven
私有仓库工具Nexus Maven如何部署并实现远程访问管理界面
私有仓库工具Nexus Maven如何部署并实现远程访问管理界面
75 0
|
7天前
|
Java 测试技术 Maven
maven的package、install、deploy命令
maven的package、install、deploy命令
|
7天前
|
JavaScript Java Apache
【SpringBoot】Maven 版本管理与 flatten-maven-plugin 插件的使用及分析
【SpringBoot】Maven 版本管理与 flatten-maven-plugin 插件的使用及分析
320 0
|
7天前
|
Java 测试技术 Maven
boot项目添加运行参数的maven插件
boot项目添加运行参数的maven插件
40 0

热门文章

最新文章

推荐镜像

更多