任何人都知道如何同时编译和运行巨大的java项目(假设每次请求)我可以用于sun jdk这种情况。有分布式编译的方法吗?
答案 0 :(得分:2)
您可以使用ToolProvider
api以编程方式启动编译。 (请参阅this tutorial寻求帮助)
以此为出发点,您只需要创建适当的抽象来定义项目是什么(源文件夹,类路径等),并且您有一个很薄的前端来编译多个项目。
我可能会使用ThreadPool来实现实际的编译:
ExecutorService threadPool =
Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
或者,如果您不能使用线程,请使用带有commons / pool等库的编译器池(或编译器持有者)。
无论哪种方式,您都可以拥有以下工作流程:
答案 1 :(得分:0)
Maven is starting to support it ...但为什么?在Core 2 Duo上进行并行构建Firefox(一个典型的大型C ++应用程序)所花费的时间,只要您的构建过程正确粘合在一起,您就可以构建至少5,000个独立的Java应用程序
(在我的MacBook Pro上为Firefox构建大约六个左右的大型C ++对象所花费的时间,我可能构建整个CAS webapp,它有几百个Java类和大约12-18个Maven子模块)