任何人都知道如何同时编译和运行大量java项目(假设每次都有请求)我可以在这种情况下使用sun jdk吗?有没有分布式编译的方法?
ToolProvider
api 以编程方式启动编译。 (请参阅本教程获取帮助)
以此为起点,您只需要创建适当的抽象来定义项目是什么(源文件夹、类路径等),并且您就有了一个用于编译多个项目的瘦前端。
我可能会使用ThreadPool来实现实际的编译:
ExecutorService threadPool =
Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
或者,如果您无法使用线程,请使用编译器池(或编译器持有者)以及像 commons / pool 这样的库。
无论哪种方式,您都可以拥有以下工作流程:
Maven 开始支持它...但是为什么呢?在 Core 2 Duo 上并行构建 Firefox(一种典型的大型 C++ 应用程序)所需的时间,只要您的构建过程正确粘合在一起,您可能可以构建至少 5,000 个独立的 Java 应用程序.
(在我的 MacBook Pro 上为 Firefox 构建大约六个左右的大型 C++ 对象所需的时间,我可能可以构建整个 CAS Web 应用程序,其中包含数百个 Java 类和大约 12-18 个 Maven 子模块)