Java编写只在编译时运行的代码?

Java编写只在编译时运行的代码?,java,maven,Java,Maven,是否可以编写一个“maven插件”或类似的东西,在编译时更改.java 例如: @Entity ... class ... { @Id long id } 我想注释掉所有注释,并根据实体创建ORM-Mapping.xml/Persistence。注释主要基于启用/禁用其识别的配置文件 使用来区分配置类。如果出现特殊配置文件,则不会识别任何配置类。该解决方案需要根据弹簧外形配置所有配置 @Configuration @Profile("noAnnotations") public cla

是否可以编写一个“maven插件”或类似的东西,在编译时更改.java

例如:

@Entity
... class ... {
  @Id
  long id
}

我想注释掉所有注释,并根据实体创建ORM-Mapping.xml/Persistence。注释主要基于启用/禁用其识别的配置文件

使用来区分配置类。如果出现特殊配置文件,则不会识别任何配置类。该解决方案需要根据弹簧外形配置所有配置

@Configuration
@Profile("noAnnotations")
public class SomeConfigurationClass

你所描述的听起来像是在寻找C/C++预处理器/模板功能

也许注释处理可以帮助您


除此之外,从实体注释推断
persistence.xml
是Spring框架所做的事情。

这是可能的。ProjectLombok修改编译后的代码,但是没有公开的API来做这件事。(请参见)如果必须去除注释,则需要使用该选项。在运行时禁用所有注释可能是不合理的。如果您只是想从编译类中找到的注释中生成更简单的东西,那么编译时运行的代码就可以了?您是指面向方面的编程吗?如果您已经有JPA注释,为什么不使用它们而不是返回到基于xml的映射呢?或者这里真正的问题是什么?@prosp所以。。。代码还没有编译,你想让它运行吗?