zoukankan      html  css  js  c++  java
  • Maven以及pom.xml详解

    读者指南

    目的:为了更好地理解Maven插件

    参考文档:菜鸟教程 https://www.runoob.com/maven/maven-tutorial.html 

    Maven是什么?

    apache项目,纯java开发,基于POM(Project object model),管理项目的构建、报告、文档。 
     
    Maven的原则
    1、约定优于配置,Maven约定的项目目录结构如下图
    2、父POM为子POM提供默认值,查看默认配置的方法 mvn help:effective-pom 
     

    POM描述

    POM使用xml文件描述,文件名pom.xml,其内容包括以下几个方面(按个人理解的划分,非标准官方说法)

    POM版本号(POM模型的版本,不同于POM描述的具体内容。类似于 类和对象的关系),

    项目ID(项目的唯一标志),

    父POM信息(每一个POM都有一个父POM,即便没有显式声明),

    依赖信息(所依赖的项目的标志信息),

    依赖仓库(查找依赖的仓库地址),

    插件信息(构建用到的插件),

    插件仓库(查找插件的仓库地址),

    构建信息(源代码和资源的路径、目标文件名称和路径),

    POM配置信息(变量)。

    各部分所使用的标签如下: 

    * POM版本号:

    <modelVersion>4.0.0</modelVersion>

    * 项目ID:

    <groupId>cn.kyh</groupId>
    <artifactId>helloplugin</artifactId>
    <version>1.0-SNAPSHOT</version>

    * 父POM信息:

    ```
    <parent>
    <artifactId />
    <groupId />
    <version />
    <!-- 父项目的pom.xml文件的相对路径,默认值是../pom.xml。Maven首先在relativePath,然后在本地仓库,最后在远程仓库寻找父项目的pom。 -->
    <relativePath />
    </parent>
    ```

    * 依赖信息

    ```
    <dependencies>
    <dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-plugin-api</artifactId>
    <version>2.0</version>
    </dependency>
    </dependencies>
    ```

    * 依赖仓库

    ```
    <repositories>
    <repository>
    <snapshots>
    <enabled>false</enabled>
    </snapshots>
    <id>central</id>
    <name>Maven Repository Switchboard</name>
    <url>http://repo1.maven.org/maven2</url>
    </repository>
    </repositories>
    ```

    * 插件信息

    ```
    <build>
    <plugins>
    <plugin>
    <groupId>cn.kyh</groupId>
    <artifactId>helloplugin</artifactId>
    <version>1.0-SNAPSHOT</version>
    </plugin>
    </plugins>
    </build>
    ```

    * 插件仓库

    ```
    <pluginRepositories>
    <pluginRepository>
    <releases>
    <updatePolicy>never</updatePolicy>
    </releases>
    <snapshots>
    <enabled>false</enabled>
    </snapshots>
    <id>central</id>
    <name>Maven Plugin Repository</name>
    <url>http://repo1.maven.org/maven2</url>
    </pluginRepository>
    </pluginRepositories>
    ```

    * 构建结果信息

    ```
    <build>
    <sourceDirectory>C:MVNprojectsrcmainjava</sourceDirectory>
    <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory>
    <testSourceDirectory>C:MVNprojectsrc estjava</testSourceDirectory>
    <outputDirectory>C:MVNproject argetclasses</outputDirectory>
    <testOutputDirectory>C:MVNproject arget est-classes</testOutputDirectory>
    <resources>
    <resource>
    <mergeId>resource-0</mergeId>
    <directory>C:MVNprojectsrcmain esources</directory>
    </resource>
    </resources>
    <testResources>
    <testResource>
    <mergeId>resource-1</mergeId>
    <directory>C:MVNprojectsrc est esources</directory>
    </testResource>
    </testResources>
    <directory>C:MVNproject arget</directory>
    <finalName>project-1.0</finalName>
    </build>
    ``` 

    * POM配置信息 

    <profiles>
          <profile>
              <id>test</id>
              <build>
                  <plugins>
                     <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>1.8</version>
                        <executions>
                           <execution>
                              <phase>test</phase>
                              <goals>
                                 <goal>run</goal>
                              </goals>
                              <configuration>
                              <tasks>
                                 <echo>Using env.test.properties</echo>
                                 <copy file="src/main/resources/env.test.properties" tofile="${project.build.outputDirectory}/env.properties" overwrite="true"/>
                              </tasks>
                              </configuration>
                           </execution>
                        </executions>
                     </plugin>
                  </plugins>
              </build>
          </profile>
    </profiles>
    View Code

    常用Maven命令:

    mvn clean 清理生成的文件

    mvn compile 编译源代码

    mvn package 打包

    mvn install 把项目安装到本地仓库

  • 相关阅读:
    cart树剪枝
    LSA、LDA
    paddle中新增layer
    https://www.i5seo.com/
    打印机彩色打印设置(将彩色打印为黑色)
    办公文档的标准格式
    电脑常用的5个按键
    Win7各个版本之间的区别
    win7保护眼睛的颜色设置方法(85,125,205)
    详细教您台式电脑如何组装
  • 原文地址:https://www.cnblogs.com/afraidToForget/p/12845672.html
Copyright © 2011-2022 走看看