全新轻量级 ioc/aop 框架 loveqq-framework 现已支持在 idea ide 下,application.yaml 配置文件的智能提示。
该智能提示的实现完全复用了 idea 自带的 springboot 支持插件。只需要引入 loveqq-boot-starter-test 依赖可使用智能提示。
下面介绍下非 springboot 项目如何能够快捷复用 springboot 插件,从而实现配置文件的智能提示。
首先引入下面的依赖,注意依赖作用域最好是 test,因为我们只需要智能提示,编译和运行都需要他们,test 作用域也方便打包时进行排除,从而也不会增加打包体积:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>3.5.0</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-jcl</artifactId>
</exclusion>
</exclusions>
</dependency>
然后编写 spring-configuration-metadata.json 配置文件放入 META-INF 文件夹下即可。
当然手动编写可能很繁复,大家可以复用 loveqq-framework 的自动构建的代码:
com.kfyty.loveqq.framework.core.support.task.BuildConfigurationMetadataAntTask
然后在 maven 中添加如下插件:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>build configuration metadata</id>
<phase>verify</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target name="metadata">
<java fork="true" classname="com.kfyty.loveqq.framework.core.support.task.BuildConfigurationMetadataAntTask" classpathref="maven.compile.classpath" rel="external nofollow" target="_blank">
<arg value="-OUTPUT_TYPE=${project.packaging}" />
<arg value="-OUTPUT_DIRECTORY=${project.build.directory}" />
<arg value="-OUTPUT_JAR=${project.build.finalName}.jar" />
<arg value="-OUTPUT_DEFAULT_JAR=${project.artifactId}-${project.version}.jar" />
<jvmarg value="--add-opens=java.base/sun.reflect.annotation=ALL-UNNAMED" />
</java>
</target>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.10.14</version>
</dependency>
</dependencies>
</plugin>
然后运行 mvn install 就可以自动生成 spring-configuration-metadata.json 配置文件并写入 jar 包了。
然后就可以愉快的使用智能提示了~