我想從一個安裝的插件運行Acceleo項目,動態Acceleo項目插件
即我寫了使用Acceleo一個插件,我想它從一個項目,是在工作區中運行Acceleo模板。
目前,我有我從我的Eclipse插件程序運行Acceleo項目:
try {
final File outputDir = new File("C:/outputDir/");
List<String> arguments = new ArrayList<String>();
/*fc is an instance of a EMF Compare Comparison object
* the nsURI for it is http://www.eclipse.org/emf/compare
*/
Generate generator = new Generate(fc, outputDir, arguments);
generator.doGenerate(new BasicMonitor());
} catch (IOException e) {
e.printStackTrace();
}
模板是目前簡單:
[comment encoding = UTF-8 /]
[module generate('http://www.eclipse.org/emf/compare')]
[template public generateElement(comparison : Comparison)]
[comment @main/]
[file ('update.sql', false, 'UTF-8')]
/*SQL UPDATE SCRIPT TEST*/
[comparison.getDifferences().toString() /]
[/file]
[/template]
這完全產生。
問題是我需要部署插件,但我仍然需要最終用戶能夠修改模板。最終目標是在最終用戶的工作區中加入Acceleo項目,並讓我的插件在運行時調用它,但無論如何設置,我都必須將Acceleo項目包含在我的插件功能中。
事情我已經嘗試:
- 從最終用戶的工作空間
- 與Java類加載器的各種嘗試(我覺得這是要走的路項目重寫Acceleo模塊,但我不能似乎得到一個工作示例)
我運行:
- 的Eclipse露娜SR2(4.4 0.2)
- 的Windows 7專業版 - 64bitSP1
- Acceleo3.5.1.201409021433
- JRE 1.8.0_45