我有一个maven多模块项目(男孩,我已经写了打开方式在这个网站太多次了).几乎所有模块(即其中包含代码的模块)都应运行maven-site-plugin来生成有关代码覆盖率等的报告.这些模块具有详细的共享配置 - 报告运行,要覆盖哪些文件/排除某些插件等
但是,有一些模块可以处理打包 - 运行程序集插件以生成tarball等.这些都不会从运行站点报告中获得任何好处 - 没有可以分析的代码,也没有可以报告的测试.
所以我有很多需要共享插件配置的模块,以及一些不需要运行插件的模块,最好是根本不需要.如果我把插件放在<build>父POM 的部分中,我可以做前者(共享配置),但在这种情况下,我似乎无法关闭插件.如果我将配置下推到每个模块自己的POM,我可以做后者(避免运行插件),但在这种情况下我无法想出一个分享配置信息的好方法.
我想要的是 - 共享配置,对于有时被子模块禁用的插件 - 甚至可能吗?如果是这样,怎么样?
我正在开发一个基于maven的web项目.在我的网络模块中,我使用不同语言的特定资源包(德语,西班牙语......).我所有的资源都是基于UTF-8而且一切正常.现在有必要根据不同的maven配置文件来激活maven资源过滤来替换一些配置.
我的pom.xml:
.....
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
.....
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
....
Run Code Online (Sandbox Code Playgroud)
从那时起,我的war文件包含编码错误的资源包.例如,德语变音符号不再正确显示在我的Web应用程序中.当我禁用资源过滤时,一切都很好.
我找到的唯一解决方案是将属性project.build.sourceEncoding设置为'ISO-8859-1'
<properties>
<project.build.sourceEncoding>ISO-8859-1</project.build.sourceEncoding>
</properties>
Run Code Online (Sandbox Code Playgroud)
但我不明白为什么这是必要的?我的所有来源都是UTF-8,我的应用程序也是基于UTF-8?如果我需要添加资源包 - 例如日文字符会发生什么?
我正在使用Eclipse 4.2和Maven 3在Linux上进行开发