我已经为所有项目设置了一个父POM,并进行了标准配置。我一直在尝试使用maven-java-formatter-plugin,并使用自己的格式化配置文件。在父POM中,我已经设置好了:
<build>
...
<!-- Format the code during process-sources -->
<plugin>
<groupId>com.googlecode.maven-java-formatter-plugin</groupId>
<artifactId>maven-java-formatter-plugin</artifactId>
<version>${formatter.version}</version>
<executions>
<execution>
<phase>process-resources</phase>
<goals>
<goal>format</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- Use plugin to compiler config vice those in formatter config
file -->
<overrideConfigCompilerVersion>true</overrideConfigCompilerVersion>
<compilerSource>${jdk.version}</compilerSource>
<compilerCompliance>${jdk.version}</compilerCompliance>
<compilerTargetPlatform>${jdk.version}</compilerTargetPlatform>
<!-- Use Unix line endings -->
<lineEnding>LF</lineEnding>
<!-- The formatter config file -->
<configFile>${project.basedir}/formatter-config.xml</configFile>
</configuration>
</plugin>
</plugins>
</build>
但这需要我在每个项目中包含formatter-config.xml。我希望能够自动从某个已知位置(可能是另一个仅用于保存此文件的项目)检索/复制该文件到所有项目中,然后在构建阶段自动执行。我相信有一种方法可以实现这一点,但我找不到正确的搜索词语。
编辑(响应prunge)
我将配置文件放在一个单独的项目(打包为jar)中,并将其添加为父POM的依赖项。然而,当我尝试构建使用父POM的项目时,我会收到以下错误提示:
[ERROR] Failed to execute goal com.googlecode.maven-java-formatter-plugin:maven-java-formatter-plugin:0.3.1:format (default) on project TestServlet: Config file [eclipse/formatter-config.xml] cannot be found: Could not find resource 'eclipse/formatter-config.xml'. -> [Help 1]
看起来 formatter-config.xml 文件未从类路径中解析,就像您参考的格式化程序插件页面所述。
这是我的内容; 也许您可以告诉我我哪里做错了:
CodeFormatter (builds a jar)
|-- pom.xml
|-- src
| `-- main
| `-- resources
| `-- eclipse
| `-- formatter-config.xml
Parent POM与上述相同,但添加了新的依赖项:
<groupId>my.company</groupId>
<artifactId>super-pom</artifactId>
<version>1.0</version>
<packaging>pom</packaging>
....
<dependencies>
<dependency>
<groupId>my.company</groupId>
<artifactId>code-formatter</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
...
没有对TestServlet项目的POM进行任何更改;它包含了父POM:
<parent>
<groupId>my.company</groupId>
<artifactId>super-pom</artifactId>
<version>1.0</version>
</parent>