Maven 详细输出的配置行代表什么?
What do the configuration lines at verbose output of Maven represent?
这是 mvn -X install
输出的摘录:
[DEBUG] Configuring mojo org.apache.maven.plugins:maven-resources-plugin:2.4.3:resources from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-resources-plugin:2.4.3, parent: sun.misc.Launcher$AppClassLoader@33909752]
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-resources-plugin:2.4.3:resources' with basic configurator -->
[DEBUG] (f) buildFilters = []
[DEBUG] (f) encoding = UTF-8
[DEBUG] (f) escapeWindowsPaths = true
[DEBUG] (s) includeEmptyDirs = false
[DEBUG] (s) outputDirectory = C:\Users\Username\Software\glassfish4\docs\javaee-tutorial\examples\jaxws\helloservice-war\target\classes
[DEBUG] (s) overwrite = false
[DEBUG] (f) project = MavenProject: org.glassfish.javaeetutorial:helloservice-war:7.0.5 @ C:\Users\Username\Software\glassfish4\docs\javaee-tutorial\examples\jaxws\helloservice-war\pom.xml
[DEBUG] (s) resources = [Resource {targetPath: null, filtering: false, FileSet {directory: C:\Users\Username\Software\glassfish4\docs\javaee-tutorial\examples\jaxws\helloservice-war\src\main\resources, PatternSet [includes: {}, excludes: {}]}}]
[DEBUG] (f) session = org.apache.maven.execution.MavenSession@27d4a09
[DEBUG] (f) useBuildFilters = true
[DEBUG] (s) useDefaultDelimiters = true
[DEBUG] -- end configuration --
This 是我的 resources
插件版本的 resources
目标的文档页面。
我想知道这些行(以(f)
或(s)
开头的行)代表什么。最初我以为这些代表了提到的目标的参数但是maven-resources-plugin:2.4.3:resources没有参数如:
- 构建过滤器
- 项目
- 资源
- 会话
简而言之:
- 这些线代表什么?
- 它们开头的
(f)
或(s)
代表什么?
此日志显示 Maven 如何配置插件以供其执行并输出为插件执行的每个参数设置的值。
每个
[DEBUG] (f) buildFilters = []
[DEBUG] (f) encoding = UTF-8
[DEBUG] (f) escapeWindowsPaths = true
[DEBUG] (s) includeEmptyDirs = false
[DEBUG] (s) outputDirectory = C:\Users\Username\Software\glassfish4\docs\javaee-tutorial\examples\jaxws\helloservice-war\target\classes
[DEBUG] (s) overwrite = false
[DEBUG] (f) project = MavenProject: org.glassfish.javaeetutorial:helloservice-war:7.0.5 @ C:\Users\Username\Software\glassfish4\docs\javaee-tutorial\examples\jaxws\helloservice-war\pom.xml
[DEBUG] (s) resources = [Resource {targetPath: null, filtering: false, FileSet {directory: C:\Users\Username\Software\glassfish4\docs\javaee-tutorial\examples\jaxws\helloservice-war\src\main\resources, PatternSet [includes: {}, excludes: {}]}}]
[DEBUG] (f) session = org.apache.maven.execution.MavenSession@27d4a09
[DEBUG] (f) useBuildFilters = true
[DEBUG] (s) useDefaultDelimiters = true
对应maven-resources-plugin
的一个属性。但是,并非所有这些都可以由用户直接配置。 the documentation中列出的那些对应于可以被用户覆盖的属性。
那些不能被用户配置的有一个特殊的readonly
attribute set to true
in the MOJO configuration, that you can find in the Mojo API:
Specifies that this parameter cannot be configured directly by the user (as in the case of POM-specified configuration). This is useful when you want to force the user to use common POM elements rather than plugin configurations, as in the case where you want to use the artifact's final name as a parameter.
public 文档中未显示这些参数可能是因为它们是无法覆盖的内部参数。
例如,如果您查看 the source code for buildFilters
:
@Parameter( defaultValue = "${project.build.filters}", readonly = true )
protected List<String> buildFilters;
大家可以注意到,这个属性其实是插件的一个参数,只是设置为readonly。 project
or session
.
也是如此
(s)
和 (f)
的含义对我来说比较晦涩,你可以看到它们 in the source code 并且它显然表示该参数是否由 Maven 使用 setter (s)
或反射 (f)
.
这是 mvn -X install
输出的摘录:
[DEBUG] Configuring mojo org.apache.maven.plugins:maven-resources-plugin:2.4.3:resources from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-resources-plugin:2.4.3, parent: sun.misc.Launcher$AppClassLoader@33909752]
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-resources-plugin:2.4.3:resources' with basic configurator -->
[DEBUG] (f) buildFilters = []
[DEBUG] (f) encoding = UTF-8
[DEBUG] (f) escapeWindowsPaths = true
[DEBUG] (s) includeEmptyDirs = false
[DEBUG] (s) outputDirectory = C:\Users\Username\Software\glassfish4\docs\javaee-tutorial\examples\jaxws\helloservice-war\target\classes
[DEBUG] (s) overwrite = false
[DEBUG] (f) project = MavenProject: org.glassfish.javaeetutorial:helloservice-war:7.0.5 @ C:\Users\Username\Software\glassfish4\docs\javaee-tutorial\examples\jaxws\helloservice-war\pom.xml
[DEBUG] (s) resources = [Resource {targetPath: null, filtering: false, FileSet {directory: C:\Users\Username\Software\glassfish4\docs\javaee-tutorial\examples\jaxws\helloservice-war\src\main\resources, PatternSet [includes: {}, excludes: {}]}}]
[DEBUG] (f) session = org.apache.maven.execution.MavenSession@27d4a09
[DEBUG] (f) useBuildFilters = true
[DEBUG] (s) useDefaultDelimiters = true
[DEBUG] -- end configuration --
This 是我的 resources
插件版本的 resources
目标的文档页面。
我想知道这些行(以(f)
或(s)
开头的行)代表什么。最初我以为这些代表了提到的目标的参数但是maven-resources-plugin:2.4.3:resources没有参数如:
- 构建过滤器
- 项目
- 资源
- 会话
简而言之:
- 这些线代表什么?
- 它们开头的
(f)
或(s)
代表什么?
此日志显示 Maven 如何配置插件以供其执行并输出为插件执行的每个参数设置的值。
每个
[DEBUG] (f) buildFilters = []
[DEBUG] (f) encoding = UTF-8
[DEBUG] (f) escapeWindowsPaths = true
[DEBUG] (s) includeEmptyDirs = false
[DEBUG] (s) outputDirectory = C:\Users\Username\Software\glassfish4\docs\javaee-tutorial\examples\jaxws\helloservice-war\target\classes
[DEBUG] (s) overwrite = false
[DEBUG] (f) project = MavenProject: org.glassfish.javaeetutorial:helloservice-war:7.0.5 @ C:\Users\Username\Software\glassfish4\docs\javaee-tutorial\examples\jaxws\helloservice-war\pom.xml
[DEBUG] (s) resources = [Resource {targetPath: null, filtering: false, FileSet {directory: C:\Users\Username\Software\glassfish4\docs\javaee-tutorial\examples\jaxws\helloservice-war\src\main\resources, PatternSet [includes: {}, excludes: {}]}}]
[DEBUG] (f) session = org.apache.maven.execution.MavenSession@27d4a09
[DEBUG] (f) useBuildFilters = true
[DEBUG] (s) useDefaultDelimiters = true
对应maven-resources-plugin
的一个属性。但是,并非所有这些都可以由用户直接配置。 the documentation中列出的那些对应于可以被用户覆盖的属性。
那些不能被用户配置的有一个特殊的readonly
attribute set to true
in the MOJO configuration, that you can find in the Mojo API:
Specifies that this parameter cannot be configured directly by the user (as in the case of POM-specified configuration). This is useful when you want to force the user to use common POM elements rather than plugin configurations, as in the case where you want to use the artifact's final name as a parameter.
public 文档中未显示这些参数可能是因为它们是无法覆盖的内部参数。
例如,如果您查看 the source code for buildFilters
:
@Parameter( defaultValue = "${project.build.filters}", readonly = true )
protected List<String> buildFilters;
大家可以注意到,这个属性其实是插件的一个参数,只是设置为readonly。 project
or session
.
(s)
和 (f)
的含义对我来说比较晦涩,你可以看到它们 in the source code 并且它显然表示该参数是否由 Maven 使用 setter (s)
或反射 (f)
.