java - 将 maven 项目迁移到模块 - 忽略 module-info.java
问题描述
我们目前正在迁移到 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>
有任何想法吗?
解决方案
过滤器不适用于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;
}
}
推荐阅读
- angular - Angular 8 表单控件 Ng If
- hive - 在 HDP 3.1.4 中使用 kafka-handler 4.0
- elasticsearch - 弹性搜索(Kibana) - 布尔结果之间的相交
- python - python无法导入嵌套模块
- c# - 多个字段的 C# 不可变计数器
- c - 使用双指针向结构输入值时出现问题
- node.js - AWS Lambda 从 Windows 机器上创建的 zip 文件访问节点模块
- dataweave - 有没有我可以阅读的书可以帮助我使用数据编织?
- python - Python AWS - 从已发送电子邮件中获取RawMessageContent
- xamarin - SkiaSharp 在可点击的路径上制作位图