Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven插件配置与属性_Java_Maven - Fatal编程技术网

Java Maven插件配置与属性

Java Maven插件配置与属性,java,maven,Java,Maven,与配置相比,通过属性配置Maven插件有哪些优点和缺点 例如,maven编译器插件文档明确显示了将source和target配置为 如下图所示,可能会进一步使用pluginManagement [...] [...] org.apache.maven.plugins 相反,不依赖于特定的版本 <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.c

配置
相比,通过
属性
配置Maven插件有哪些优点和缺点

例如,
maven编译器插件
文档明确显示了将
source
target
配置为 如下图所示,可能会进一步使用
pluginManagement


[...]
[...]
org.apache.maven.plugins
相反,不依赖于特定的版本

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

1.8
1.8

您可以使用命令行参数影响属性的生成时间。您可以在多模块项目中使用它们。
因此,wie正在使用它们来配置findbugs或一些用于部署的URL。

有一些属性是由插件自动获取的。一个例子是给定的目标/源信息。另一个是
project.build.sourceEncoding
,它考虑了几个插件,如maven编译器插件、maven资源插件等。因此使用属性可以减少插件配置的大小和数量。首先,许多目标的许多参数没有任何关联的用户属性,因此只能通过
进行设置

对于那些确实有用户属性的(例如这些示例),这取决于。正如@khmarbaise所指出的,一些用户属性在多个目标甚至插件之间特别协调

正如@kdoteu所指出的,可以从命令行重写用户属性,这在某些情况下很有用,但很可能不适用于Java源/目标级别,而Java源/目标级别通常是项目的固有属性(在版本化提交中,您可以在源文件更改的同时更改)。用户属性也可以从外部配置文件(如
settings.xml
)中重写,这有时很重要

另一方面,插件配置更加明确:它与特定目标(或插件中使用相同参数名的所有目标)明确关联。一些IDE可以提供代码完成。您不必担心意外地让其他无关插件解释属性名(尽管插件作者尝试对大多数用户属性名使用唯一的前缀)。令人惊讶的是,如果输入错误的参数名,Maven(3.8.1)不会使构建失败,但是它会悄悄地忽略额外的元素

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