我们有一个java应用程序,用户可以在其中编写/执行自己的java代码并使用从已编译的jar中导入 - 即他们编写它,并由应用程序编译和运行。他们还可以保存此代码(以及他们正在使用的各种其他信息) - 目前将其保存为人类可读的xml文件。
我希望能够在IDE(主要是Intellij)中使用这些保存xml文件,这样如果用户在IDE中更改其编译jar中的内容,这些更改也可以在save xml文件中获取
例如,如果保存文件使用了编译jar中的类,则可能具有以下导入:
import com.company.project.package.subpackage.MyClass;
让我们说班级被移动了,所以导入是:
import com.company.project.package.subpackage.subsub.MyClass;
...这将改变使用该类并导入的所有save xml文件 - 就像IDE将用于编译项目中的所有其他用法一样。
(这个和其他例子之所以出现,是因为编译后的jar在使用上述应用程序时都在不断开发和使用中。)
目前,如果我要将save xml文件添加到IDE中的子项目,用户可以手动编辑保存文件,可能利用“查找/替换”或“搜索文本中的用法” ' 功能。这比没有好,但仍然是一个相当复杂/复杂的过程。此外,不会检查保存文件中的代码是否与已编译项目中的代码一致。
我正在考虑的一种方法是脚本或测试类,它将解压缩save xml文件,将java代码写入java文件,然后尝试编译(并可能运行/测试)这些java文件。
进一步的步骤是编写一个maven插件(我们使用maven作为我们的构建周期)或一个ant脚本(ant仍然有它的用途......)来做这个,并且可能使我们构建过程的这一部分 - 即,如果不确保其子项目中的所有save xml文件也进行编译,则无法编译项目。
答案 0 :(得分:3)
..保存为.java文件不是我正在寻找的解决方案。
将其保存为包含1个(或更多)XML文件的Zip以及所需的任何源(根据包的路径)。您甚至可以轻松地包含其他文件,清单,帮助文件等。
这有许多优点: