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

标签 java xml compilation save

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

我希望能够在 IDE(主要是 Intellij)中使用那些 save xml 文件,这样如果用户在 IDE 中更改了他们编译的 jar 中的内容,这些更改也可以在 save 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 文件也能编译,则无法编译项目。

  • 这看起来是一种合理的方法吗?
  • 是否有任何人都可以建议的替代方法?

最佳答案

..saving as a .java file is not the solution I'm looking for.

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

这有很多优点:

  • 它允许源文件和包含文件使用与 XML 不同的编码
  • 它将项目的所有必要部分整合到一个文件中,没有任何“跳来跳去”来使一种格式适合另一种格式。
  • 它允许根据数据使用不同的压缩级别(例如,文本/XML 可以很好地压缩,而序列化图像则不能)。

关于java - 如何将 java 源代码保存在 xml 文件中,并在 IDE 中编辑/编译它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12895966/

相关文章:

java - 从 activeMQ 获取所有 Queue

java - 使用批处理解析多个 XML 文件

php - 我将 Goodreads API 结果从 XML 转换为 JSON 的方法出了什么问题?

c++ - 奇怪的 GDAL 编译错误

java - 在 Java Web 应用程序中动态添加外部 JavaScript 或 CSS 文件

java - 检索列具有相同值的不同行并通过没有游标超时进行迭代?

xml - 使用 WebHttpBinding 设置为基本身份验证的 WCF 进行 POX REST 调用时双重请求

build - TeamCity:找不到类型或命名空间,但引用存在并且我的项目在本地编译

compilation - 在 EC2 上的 Ubuntu 中编译内核(没有错误,但没有图像,重启后没有变化)

java - 如何在 JDBC 调用 MySQL 数据库时指定毫秒超时?