pom.xml文件中的Scope标签

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pom.xml文件中的Scope标签相关的知识,希望对你有一定的参考价值。

参考技术A 我们在Maven项目,pom.xml文件中经常会碰到scope这个标签,有些同学搞不清楚这个scope对依赖的jar包有什么用。

在回答这个问题之前,我先简单的阐述一下java程序运行的阶段:
源码 => 编译 => 测试 => 运行 => 打包 => 部署

上述程序中同学们应该都可以看的懂,编写一个servlet 打印 hello world。
1.IDE在编译阶段按照pom.xml中的依赖关系会去查找log4j servlet的二方包,如果找不到就会出现错误
2.在测试某个函数会调用junit 二方包
3.运行阶段
4.打包的时候,pom.xml会告诉maven,哪些jar不需要打进去

所以它的pom.xml应该是这样的

总结:我们平常最大的scope疑问在provided 和 runtime之间。记住一个原则就行,如果容器有的jar,在项目pom.xml中就使用provided; 如果需要动态加载的jar就使用runtime 。默认scope是compile

http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
https://blog.csdn.net/qq_31071543/article/details/91350906
https://www.jianshu.com/p/a9bd44a83dc5
https://www.cnblogs.com/moxiaotao/p/9965410.html

pom.xml中properties标签中的maven编译器和plugin标签中的maven编译器之间的区别[重复]

【中文标题】pom.xml中properties标签中的maven编译器和plugin标签中的maven编译器之间的区别[重复]【英文标题】:Difference between maven compiler in properties tag and maven compiler in plugin tag in pom.xml [duplicate] 【发布时间】:2020-03-24 15:18:21 【问题描述】:

我试图在我的 pom.xml 中将我的项目源和目标设置为 Java 1.8,并发现它可以通过两种方式完成:

    在属性标签中设置:

    <maven.compiler.target>1.8</maven.compiler.target>
    <maven.compiler.source>1.8</maven.compiler.source>
    

    在插件中配置:

    <build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    
    </pluginManagement>
    

如果有一个选择,我更喜欢选项 #1,因为它更短,但两者之间的真正区别是什么?

【问题讨论】:

【参考方案1】:

是等价的。实际上 maven-compiler-plugin 的 标签使用 属性,而 使用属性 属性:https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html

所以如果你只想设置这两个属性,你可以愉快地使用属性,但是插件更灵活,因为它有很多其他可以设置的配置(在野外我见过:fork, annotationProcessors、compilerArgs 等标签)

【讨论】:

以上是关于pom.xml文件中的Scope标签的主要内容,如果未能解决你的问题,请参考以下文章

maven的pom.xml文件标签含义

pom.xml文件的标签含义介绍

6.maven的pom.xml配置文件中常用的配置标签解析

Maven的项目pom.xml文件配置标签列表

maven的pom.xml文件标签含义

maven pom xml文件中的错误:构建Android项目[重复]