我们目前正在迁移到JPMS,为maven多模块项目中的所有模块设置module-info.java。
对于我们来说,理想的是将module-info.java已经驻留在“ dev”分支中,但不影响任何构建。因此,想法是默认情况下排除module-info.java并将其仅包含在特定的Maven配置文件中。
这有意义吗?
无论如何,这对我不起作用,即使在排除部分中,也会拾取module-info.java如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${version.maven-compiler-plugin}</version>
<configuration>
<source>${maven.compiler.source}</source>
<target>${maven.compiler.target}</target>
<release>${maven.compiler.release}</release>
<compilerArgs>
<arg>-Xlint:${maven.compiler.warningsToIgnore}</arg>
</compilerArgs>
<excludes>
<exclude>**/module-info.java</exclude>
</excludes>
</configuration>
</plugin>
有什么想法吗?
答案 0 :(得分:0)
仍然令人困惑的是,该过滤器不适用于module-info.java,但查看编译器插件的来源,我想那只是它的方式:
protected void preparePaths( Set<File> sourceFiles )
{
//assert compilePath != null;
File moduleDescriptorPath = null;
boolean hasModuleDescriptor = false;
for ( File sourceFile : sourceFiles )
{
if ( "module-info.java".equals( sourceFile.getName() ) )
{
moduleDescriptorPath = sourceFile;
hasModuleDescriptor = true;
break;
}
}