当前位置:首页 > 其它 >

POM文件帮助文档

PDF高质量版

时间:2020-10-14 10:23:37大小:411 KB已被612人关注 资源下载

POM文件处理指南
POM文件处理指南

pom文件详解

父级常用POM

<!-- 声明项目描述符遵循哪一个POM模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,
           这是为了当Maven引入了新的特性或者其他模型变更的时候,确保稳定性。 --> 
<modelVersion> 4.0.0 </modelVersion> 
<!-- 项目的全球唯一标识符,通常使用全限定的包名区分该项目和其他项目。并且构建时生成的路径也是由此生成, 如com.mycompany.app生成的相对路径为:/com/mycompany/app --> 
<groupId>xxx</groupId> 
<!-- 构件的标识符,它和group ID一起唯一标识一个构件。换句话说,你不能有两个不同的项目拥有同样的artifact ID和groupID;在某个特定的group ID下,artifact ID也必须是唯一的。通常和项目名称保持统一 --> 
<artifactId>xxx</artifactId> 

<!-- 项目产生的构件类型,例如jar、war、ear、pom。插件可以创建他们自己的构件类型,默认jar--> 
<packaging> jar </packaging> 

<!-- 项目当前版本,格式为:主版本.次版本.增量版本-限定版本号 --> 
<version> 1.0-SNAPSHOT </version> 
<!-- 发现依赖和扩展的远程仓库列表。下面的是阿里云的镜像仓库 --> 
<repositories> 
    <repository>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </repository>
</repositories> 
<!-- 模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径 --> 
<modules>
    <!--子项目相对路径-->
    <module></module>
</modules> 
<!-- 以值替代名称,Properties可以在整个POM中使用--> 

<properties>
    <!-- 定义 java.version 1.8-->
    <java.version>1.8</java.version>
    <!-- 使用 ${java.version}-->
    <maven.compiler.source>${java.version}</maven.compiler.source>
</properties> 

<!-- profile可以让我们定义一系列的配置信息,然后指定其激活条件,指定activeByDefault为true的时候就表示当没有指定其他profile为激活状态时,该profile就默认会被激活 -->

<!--通常用profile来动态的选择配置文件,即多个部署环境 -->
<!-- 示例代码就展示了3种环境,本地开发环境,生产环境,测试环境,部署打包的时候制定不同的profile就可以 -->
<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <activeProfile>dev</activeProfile>
        </properties>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>pro</id>
        <properties>
            <activeProfile>pro</activeProfile>
        </properties>
    </profile>
    <profile>
        <id>test</id>
        <properties>
            <activeProfile>test</activeProfile>
        </properties>
    </profile>
</profiles>
<!-- 一般在最顶层的pom文件里,主要用来统一管理项目依赖的版本号,确保应用的各个项目的依赖和版本一致 --> 
<dependencyManagement> 
    <dependencies> 
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <!-- 使用上文设置的properties -->
            <version>${spring.boot.version}</version>
        </dependency>
    </dependencies> 
</dependencyManagement> 

<!-- 依赖具体的jar包 -->
<dependencies>  
    <dependency>  
        <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter</artifactId>  
        <!-- 如果不设置version,就会父级pom中dependencyManagement找,继承父级的 version 。如果设置了就用自己设置的版本-->
        [<version>${spring.boot.version}</version>]
    </dependency>  
</dependencies> 
<!-- 构建项目需要的信息,主要用于编译设置 --> 
<build> 
    <!-- 使用的插件列表 --> 
    <plugins>
        <!-- plugin元素包含描述插件所需要的信息 --> 
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>3.0.2</version>
            <configuration>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
        <!-- 指定maven编译的jdk版本,如果不指定,maven3默认用jdk 1.5 maven2默认用jdk1.3 --> 
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <source>${maven.compiler.source}</source>
                <target>${maven.compiler.target}</target>
                <encoding>utf-8</encoding>
                <compilerArgument>-XDignore.symbol.file</compilerArgument>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.20</version>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>
    </plugins>
</build>
<resources> 
    <!-- 这个元素描述了项目相关或测试相关的所有资源路径 --> 
    <resource> 
        <!-- 描述了资源的目标路径。该路径相对target/classes目录(例如${project.build.outputDirectory})。
                     举个例子,如果你想资源在特定的包里(org.apache.maven.messages),你就必须该元素设置为
                    org/apache/maven/messages。然而,如果你只是想把资源放到源码目录结构里,就不需要该配置。 --> 
        <targetPath></targetPath> 

        <!-- 是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素
                     里列出。 --> 
        <filtering></filtering>

        <!-- 描述存放资源的目录,该路径相对POM路径 --> 
        <directory></directory>

        <!-- 包含的模式列表,例如**/*.xml. --> 
        <includes>
            <include></include>
        </includes>

        <!-- 排除的模式列表,例如**/*.xml -->
        <excludes>
            <exclude></exclude>
        </excludes>
    </resource> 
</resources> 

 

已被772人点赞
pom文件的使用
pom文件的使用

众所周知,pom.xml文件是maven工程的核心文件,是全局级别的配置文件;可以在该文件中添加jar包的依赖,使用plugin来配置一些规则;在执行task或goal时,maven会去项目根目录下读取pom.xml文件获取需要的配置信息。总而言之,了解pom文件里面的概念是很有必要的。

maven内置属性(maven预定义,用户可以直接使用)

${basedir}表示项目根目录,既包含pom.xml文件的目录
${version}表示项目版本
${project.basedir},同${basedir}
${project.baseuri}表示项目文件地址
${maven.build.timestamp}表示项目构件开始时间
${maven.build.timestamp.format}表示属性${maven.build.timestamp}的展示格式,默认值为yyyyMMdd-HHmm,可以自定义其格式。用法如下:

<properties>
    <maven.build.timestamp.format>yyyy-MM-dd-HH-mm-ss</maven.build.timestamp.format>
</properties>

扩展:指定生成的jar包文件名并带时间戳

<build>
    <finalName>
        ${project.artifactId}-${project.version}-${maven.build.timestamp}
    </finalName>
</build>

 

已被663人点赞
pom文件结构
pom文件结构

properties:通过<properties>元素,用户可以定义一个或多个maven属性,这样就可以在pom的其他地方使用${属性名}的方式引用该属性。

Maven总共有6类属性,内置属性、POM属性、自定义属性、Settings属性、Java属性。

内置属性:

两个常用内置属性 ${basedir} 表示项目跟目录,即包含pom.xml文件的目录;${version} 表示项目版本

pom属性:

用户可以使用该类属性引用POM文件中对应元素的值。如${project.artifactId}就对应了<project> <artifactId>元素的值,常用的POM属性包括:

${project.build.sourceDirectory}:项目的主源码目录,默认为src/main/java/

${project.build.testSourceDirectory}:项目的测试源码目录,默认为src/test/java/

${project.build.directory} : 项目构建输出目录,默认为target/

${project.outputDirectory} : 项目主代码编译输出目录,默认为target/classes/

${project.testOutputDirectory}:项目测试主代码输出目录,默认为target/testclasses/

${project.groupId}:项目的groupId

${project.artifactId}:项目的artifactId

${project.version}:项目的version,与${version} 等价

${project.build.finalName}:项目打包输出文件的名称,默认为${project.artifactId}-${project.version}

已被216人点赞
下载地址:百度网盘下载
相关资源
Java jdk14 API官方帮助文档
Java jdk14 API官方帮助文档 高清版

Java14 文档,记录Java14语言中的类、方法、接口信息。目前官方最新版本jdk14,这里提供Java14 API官方文档官方英文版,需要的朋友可下载试试! 3月17日JDK 14 正式发布了,此版本包含的 JEP(Java/JDK Enhancement Proposals,JDK 增强提案)比 Java 12 和 13 加起来的还要多。 总共 16 个新特性如下: 305:Pattern Matching for instanceof (Preview) 为 instanceof 运算符引入模式

立即下载
Java jdk12 API官方文档(jdk13帮助文档)
Java jdk12 API官方文档(jdk13帮助文档) 完整版

Java12 API文档,记录Java12语言中的类、方法、接口信息。目前官方最新版本jdk13,是这里提供 Java12 API官方文档CHM版和jdk13帮助文档html完整版 ,都是官方英文版的,需要的朋友可下载试试! ps:另外请查看右键-属性-解除锁定,否则点击 右边框不会显示相应内容 JDK13到今天已经发布快3个月了,之前有零零散散的试过一些新的特性,但却没有整体的整理一下。想到作为Java开发,连使用的JDK(Java Developerment Kit)有什么特性都不清楚,实在是有些不应

立即下载
PyWin32 官方帮助文档
PyWin32 官方帮助文档 超清版

PyWin32.chm帮助文档 是一个很方便的WIN32 API函数帮助文档,方便使用python开发windows应用使用。比较全,适合保存在电脑里做工具手册,需要的朋友可下载使用! pywin32是一个第三方模块库,主要的作用是方便python开发者快速调用windows API的一个模块库。 同时pywin32也是绝大部分windows上第三方python模块库的前提。最重要的是,开发外Gua辅助工具的法宝。

立即下载

Copyright 2018-2020 www.xz577.com 码农之家

版权投诉 / 书籍推广 / 赞助:520161757@qq.com