MAVEN的使用详解

文章目录

相关配置

setting配置文件

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
	<!--本地仓库配置-->
  <localRepository>D:/dev/repository</localRepository>
  <!--阿里镜像配置-->
  <mirrors>
    <mirror>
      <id>nexus-aliyun</id>
      <mirrorOf>central</mirrorOf>
      <name>nexus-aliyun</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>
  </mirrors>
</settings>

pom.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>qietv</artifactId>
        <groupId>tv.huan</groupId>
        <version>4.0.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>war</packaging>
    <artifactId>huan-admin</artifactId>
    <description>
        web服务入口
    </description>
    <dependencies>
        <!-- spring-boot-devtools -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional> <!-- 表示依赖不会传递 -->
            <exclusions>
                <exclusion>
                    <!--排除(不导入)包中的jar不导入的配置-->
                    <groupId></groupId>
                    <artifactId></artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.0.0</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                    <warName>mediaSystem</warName>
                </configuration>
            </plugin>
        </plugins>
        <finalName>mediaSystem</finalName>
    </build>
</project>

Maven坐标

  • groupId :the unique identifier of the organization or group that created the project
    GroupID 是项目组织唯一的标识符,一般是main目录里java的目录结构,没有硬性要求一定要和JAVA的包的结构一致
  • artifactId :unique base name of the primary artifact being generated by this project
    ArtifactID是项目的唯一的标识符,规范要求对应项目的名称,就是项目根目录的名称。

命名规则

  • GroupId一般分为多个段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的GroupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,ArtifactId是tomcat。再比如我自己建项目,可以写com.leon.
  • ArtifactId 是项目名称,比如:apache的tomcat项目,再比如我自己的项目testProj。

Scope的值及意义

testcompileruntimeprovidedsystemimport。其中import主要是在dependencyManagement中使用,平常用的不多,所以主要看其它五种;

  • test:仅测试的时候使用,打包编译的使用,不会使用改包。
  • compile:一般默认是compile,编译的时候使用,整个项目周期都会用。打包的时候会将其打包。
  • runtime:相比compile,只是不参与编译阶段。
  • provided:编译和运行都有参与,但是不参与打包,一般servlet的包都是这个值。
  • system: 使用较少,需配合systemPath使用,和provided唯一的区别是从本地获取依赖。
上一篇:20190909 SpringBoot集成Swagger


下一篇:Web服务器-正则表达式-正则其他(3.1.3)