如何将java源代码保存在xml文件中,并在IDE中编辑/编译?

如何将java源代码保存在xml文件中,并在IDE中编辑/编译?,java,xml,compilation,save,Java,Xml,Compilation,Save,我们有一个java应用程序,用户可以在其中编写/执行自己的java代码,并使用来自已编译JAR的导入—即,他们编写JAR,并由应用程序编译和运行。他们还可以保存这段代码(以及他们正在使用的各种其他信息)——目前这段代码保存到一个人类可读的xml文件中 我希望能够在IDE中使用这些保存xml文件(主要是Intellij),这样,如果用户在IDE中修改了编译后的jar中的内容,这些修改也可以在保存xml文件中进行 例如,如果保存文件使用编译的jar中的类,它可能具有以下导入: import com.

我们有一个java应用程序,用户可以在其中编写/执行自己的java代码,并使用来自已编译JAR的导入—即,他们编写JAR,并由应用程序编译和运行。他们还可以保存这段代码(以及他们正在使用的各种其他信息)——目前这段代码保存到一个人类可读的xml文件中

我希望能够在IDE中使用这些保存xml文件(主要是Intellij),这样,如果用户在IDE中修改了编译后的jar中的内容,这些修改也可以在保存xml文件中进行

例如,如果保存文件使用编译的jar中的类,它可能具有以下导入:

import com.company.project.package.subpackage.MyClass;
假设类被移动了,那么导入是:

import com.company.project.package.subpackage.subsub.MyClass;
…这将更改使用该类和导入的所有保存xml文件-就像IDE在编译项目中的所有其他用途一样

(之所以出现这种情况以及其他例子,是因为编译后的jar一直在使用上述应用程序进行开发和使用。)

目前,如果要将保存xml文件添加到IDE中的子项目中,用户可以手动编辑保存文件,可能需要利用“查找/替换”或“在文本中搜索用法”功能。这总比没有好,但仍然是一个相当复杂的过程。此外,不检查保存文件中的代码是否与编译项目中的代码一致

我正在考虑的一种方法是一个脚本或测试类,它将解压savexml文件,将java代码写入java文件,然后尝试编译(并可能运行/测试)这些java文件

下一步是编写一个maven插件(我们在构建周期中使用maven)或一个ant脚本(ant仍然有它的用途…)来完成这项工作,并可能使这部分成为我们构建过程的一部分——即,如果不确保子项目中的所有保存xml文件也被编译,您就无法编译项目

  • 这似乎是一个合理的方法吗
  • 有没有其他人可以建议的替代方法
…保存为.java文件不是我要寻找的解决方案

将其另存为包含1个(或多个)XML文件以及所需的任何源(根据包的路径)的Zip文件。您甚至可以轻松地包含其他文件、清单、帮助文件等

这有许多优点:

  • 它允许源文件和包含文件采用与XML不同的编码
  • 它将项目的所有必要部分合并到一个文件中,而不需要任何“跳转”以使一种格式适合另一种格式
  • 它允许根据数据的不同压缩级别(例如,文本/XML压缩效果很好,而序列化图像压缩效果不好)
他们不能将java源代码保存在一个,
.java
源代码文件中吗?为什么是XML?因为正如我的问题所述,它与其他各种信息一起保存。我考虑了两个保存文件的可能性(即一个用于代码,另一个用于其他内容…),但我确定这些文件不匹配/损坏等的危险太大了。您可以在源文件头的javadoc中使用自定义注释,将所有内容保存在一个位置。取决于元数据的复杂程度。“我相信保存为.java文件不是我要寻找的解决方案。”将其保存为包含1个(或更多)XML文件以及所需的任何源(根据包的路径)的Zip文件。这有两个优点:允许源代码对XML进行不同的编码,以及整合项目的所有必要部分。您甚至可以轻松地包含其他文件、清单、帮助文件等@AndrewThompson-我已经对您的建议作了进一步的思考,并将尝试实施它。你能把它作为一个答案贴出来吗,这样我就可以投票了(并且,可能的话,接受它)?“并对它的进展进行评论…”我期待着阅读你的报告所以进展如何?