0%

Maven相关

maven简介

1.maven可以很方便的管理项目依赖关系。
2.maven可以伴随整个项目生命周期,关于这一点,下面Maven命令中可窥见一斑。

maven安装配置

1.windows下配置环境变量:

M2_HOME
F:\apache-maven-3.5.0

在path下追加:
%M2_HOME%\bin;

查看maven版本以及验证环境变量是否配置成功:
cmd下  mvn -version

maven默认依赖包下载存放位置:
C:\Users\UX\.m2

2.自定义修改:

将F:\apache-maven-3.5.0\conf下的settings.xml复制到C:\Users\UX\.m2的.m2文件夹下
做出下列两项修改:

1.修改为官方推荐的仓库中心:

配置文件:

http://op05inpyd.bkt.clouddn.com/settings.xml

<mirror>
  <id>UK</id>
  <name>UK Central</name>
  <url>http://uk.maven.org/maven2</url>
  <mirrorOf>central</mirrorOf>
</mirror>

或者改为阿里的:

<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>        
</mirror>

2.自定义依赖包下载到本地的存放位置:

<localRepository>F:\MavenRepository\repository
</localRepository>

Maven命令

1.maven基本命令:

mvn -v    查看maven版本信息
mvn compile  编译项目
mvn test 测试
mvn package  打包项目
mvn clean 删除target
mvn install 将本项目安装到本地仓库中

2.名词解释:
groupId: 组织名,一般是公司网站的反写+项目名
artifactId: 项目名-模块名
version: 版本号
-Dpackage: 代码所在的包名

3.使用maven创建模板项目:

例如:
mvn archetype:generate -DgroupId=com.ux.mavenproject -DartifactId=mavenproject-demo -Dversion=1.0.0SNAPSHOT -Dpackage=com.ux.mavenproject.demo -DarchetypeCatalog=internal

回车
回车
Y

创建maven项目时的参数

  • 添加此参数可快速创建maven项目,避免下载缓慢问题
      archetypeCatalog=internal
    

mac下安装maven

  • mac下安装maven

      export M2_HOME=/Users/ux/Applications/apache-maven-3.5.2
      export PATH=$PATH:$M2_HOME/bin
      
      source ~/.bash_profile
    

    Maven 依赖搜索顺序

  • 当我们执行 Maven 构建命令时,Maven 开始按照以下顺序查找依赖的库:

    • 步骤 1 - 在本地仓库中搜索,如果找不到,执行步骤 2,如果找到了则执行其他操作。
    • 步骤 2 - 在中央仓库中搜索,如果找不到,并且有一个或多个远程仓库已经设置,则执行步骤 4,如果找到了则下载到本地仓库中已被将来引用。
    • 步骤 3 - 如果远程仓库没有被设置,Maven 将简单的停滞处理并抛出错误(无法找到依赖的文件)。
  • 步骤 4 - 在一个或多个远程仓库中搜索依赖的文件,如果找到则下载到本地仓库已被将来引用,否则 Maven 将停止处理并抛出错误(无法找到依赖的文件)。

Maven打jar包

  • 可执行jar

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <!-- 可直接执行 -->
    <build>
    <plugins>
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
    </plugins>
    </build>
  • 可被依赖jar

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <!--https://blog.csdn.net/nanhuaibeian/article/details/109310112 -->
    <!--可被依赖的jar-->
    <build>
    <plugins>
    <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
    <classifier>exec</classifier>
    </configuration>
    </plugin>
    </plugins>
    </build>

向私有maven仓库deploy

  • 1.示例一(github),github packages发布配置(私有)

    1
    2
    3
    4
    5
    6
    7
    <distributionManagement>
    <repository>
    <id>github</id>
    <name>uxawseny maven repo</name>
    <url>https://maven.pkg.github.com/uxawseny/maven-repo</url>
    </repository>
    </distributionManagement>
  • 2.示例二(公司),snapshotRepository

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        <distributionManagement>
    <!-- <repository>-->
    <!-- <id>my-releases</id>-->
    <!-- <url>http://192.168.1.1:8080/repository/my-releases/</url>-->
    <!-- </repository>-->

    <!--暂时只向snapshots仓库推送-->
    <snapshotRepository>
    <id>my-snapshots</id>
    <url>http://192.168.1.1:8080/repository/my-snapshots/</url>
    </snapshotRepository>
    </distributionManagement>

    注意:需要maven仓库类型为hostde类型,才能上传成功,group会报405错误。

向私有仓库直接上传jar包

1
2
3
4
1.进入nexus选择upload,要上传的位置
2.选择本地文件,extension填写jar(不要写.jar)
3.填写Gruop ID、Artifact ID、Version
4.勾选Generation a POM file with these coordinates