我们有一个 java 应用程序,用户可以在其中编写/执行他们自己的 java 代码并使用来自已编译 jar 的导入 - 即他们编写它,它由应用程序编译和运行。他们还可以保存此代码(以及他们正在使用的各种其他信息) - 目前保存到人类可读的 xml 文件中。
我希望能够在 IDE(主要是 Intellij)中使用那些保存 xml 文件,这样如果用户在 IDE 中更改了他们编译的 jar 中的内容,这些更改也可以在保存 xml 文件中获取。
例如,如果保存文件使用了已编译 jar 中的类,则它可能具有以下导入:
import com.company.project.package.subpackage.MyClass;
假设这个类被移动了,所以导入是:
import com.company.project.package.subpackage.subsub.MyClass;
...这将更改使用该类和导入的所有保存 xml 文件 - 就像 IDE 将用于已编译项目中的所有其他用法一样。
(这个和其他例子的出现是因为编译的 jar 一直在开发和使用上述应用程序。)
目前,如果我要将保存的 xml 文件添加到 IDE 中的子项目,用户可以手动编辑保存文件,可能会利用“查找/替换”或“在文本中搜索用法”功能。这总比没有好,但仍然是一个相当复杂/复杂的过程。此外,没有检查保存文件中的代码与编译项目中的代码是否一致。
我正在考虑的一种方法是使用脚本或测试类来解压缩保存的 xml 文件,将 java 代码写入 java 文件,然后尝试编译(并可能运行/测试)这些 java 文件。
进一步的步骤是编写一个 maven 插件(我们使用 maven 进行构建周期)或一个 ant 脚本(ant 仍然有它的用途......)来做到这一点,并可能使这部分成为我们构建过程的一部分 - 即你不能编译项目而不确保其子项目中的所有保存 xml 文件也可以编译。
- 这看起来是一种合理的方法吗?
- 是否有任何人可以建议的替代方法?