同时编译10000个java项目

问题描述 投票:0回答:2

任何人都知道如何同时编译和运行大量java项目(假设每次都有请求)我可以在这种情况下使用sun jdk吗?有没有分布式编译的方法?

java parallel-processing compilation
2个回答
2
投票

您可以使用

ToolProvider
api 以编程方式启动编译。 (请参阅本教程获取帮助)

以此为起点,您只需要创建适当的抽象来定义项目是什么(源文件夹、类路径等),并且您就有了一个用于编译多个项目的瘦前端。

我可能会使用ThreadPool来实现实际的编译:

ExecutorService threadPool = 
    Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());

或者,如果您无法使用线程,请使用编译器池(或编译器持有者)以及像 commons / pool 这样的库。

无论哪种方式,您都可以拥有以下工作流程:

  1. 请求进来
  2. 将请求转换为项目定义
  3. 要么请求免费编译器,要么将项目放入队列中
  4. 编译
  5. 返回编译作业的句柄,以便客户端可以异步轮询状态

0
投票

Maven 开始支持它...但是为什么呢?在 Core 2 Duo 上并行构建 Firefox(一种典型的大型 C++ 应用程序)所需的时间,只要您的构建过程正确粘合在一起,您可能可以构建至少 5,000 个独立的 Java 应用程序.

(在我的 MacBook Pro 上为 Firefox 构建大约六个左右的大型 C++ 对象所需的时间,我可能可以构建整个 CAS Web 应用程序,其中包含数百个 Java 类和大约 12-18 个 Maven 子模块)

© www.soinside.com 2019 - 2024. All rights reserved.