Ata*_*ais 5 java maven-plugin maven-3 maven maven-clean-plugin
在我的项目中,.pom
我设置了maven-clean-plugin
这样的:
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.6.1</version>
<configuration>
<filesets>
<fileset>
<directory>src/main/webapp/bower_components</directory>
</fileset>
<fileset>
<directory>node_modules</directory>
</fileset>
<fileset>
<directory>node</directory>
</fileset>
</filesets>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
插件的目的是删除由其创建的目录frontend-maven-plugin
.无论如何,最后一个工作正常.
问题
现在的问题是,无论如何,永远不会删除上述文件夹之一.它始终是"中间的".我添加了3 filesets
并且始终没有删除第二个,请参阅日志:
[INFO] Deleting /src/main/webapp/bower_components (includes = [], excludes = [])
[INFO] Deleting /node_modules (includes = [.bindings], excludes = [])
[INFO] Deleting /node (includes = [], excludes = [])
Run Code Online (Sandbox Code Playgroud)
如果我更改文件夹的顺序:
[INFO] Deleting /src/main/webapp/bower_components (includes = [], excludes = [])
[INFO] Deleting /node (includes = [.bindings], excludes = [])
[INFO] Deleting /node_modules (includes = [], excludes = [])
Run Code Online (Sandbox Code Playgroud)
而且第二个选项总是包含这个部分: includes = [.bindings]
我相信文件夹中没有被删除.
为什么会发生这种情况,以及如何解决这个问题?
编辑,调试日志
mvn -X clean
结果,我认为这是它打破的地方:
解析后,pom.xml
它会使用此参数读取配置.但是,我没有把它放在那里.
好的,我发现了这个问题!它实际上是插件中的一个错误,已经报告过了.它影响了maven-clean-plugin 2.6.1
.
这是我的错误配置,继续阅读决议.
情况
你有一个父项目和一个子项目,都必须使用该插件.
现在;
我认为是预期的:
插件读取父项和子项的文件集并清除它们.
怎么了:
插件使用子文件集覆盖父文件集.文件集按顺序覆盖.但是,不清除文件集的父配置!
我的情况:家长.pom:
<filesets>
<fileset>
<directory>test-output</directory>
</fileset>
<fileset>
<directory>${basedir}/</directory>
<includes>
<include>.bindings</include>
</includes>
</fileset>
</filesets>
Run Code Online (Sandbox Code Playgroud)
Childs pom:
<filesets>
<fileset>
<directory>node</directory>
</fileset>
<fileset>
<directory>node_modules</directory>
</fileset>
<fileset>
<directory>src/main/webapp/bower_components</directory>
</fileset>
</filesets>
Run Code Online (Sandbox Code Playgroud)
并借鉴以上信息; 插件读取的配置是:
<filesets>
<fileset>
<directory>node</directory>
</fileset>
<fileset>
<directory>node_modules</directory>
<includes>
<include>.bindings</include>
</includes>
</fileset>
<fileset>
<directory>src/main/webapp/bower_components</directory>
</fileset>
</filesets>
Run Code Online (Sandbox Code Playgroud)
而不是具有5个文件集的配置.
错误报告https://issues.apache.org/jira/browse/MCLEAN-64
对于配置,有一些神奇的属性来指示如何组合xml元素.在这种情况下,将combine.children ="append"添加到filesets标记.有关这方面的更多详细信息,请参阅POM参考页面.http://maven.apache.org/pom.html
值得一提的是,它足以设置combine.children="append"
在孩子的项目中.pom
.
归档时间: |
|
查看次数: |
3935 次 |
最近记录: |