2014-03-12 21 views
1

是否有一種方法可以將編程創建的Drools 6工件部署到基礎的Maven存儲庫?我不想明確地以某種方式實現mvn deploy,但做到這一點從節目本身:部署以編程方式創建的KIE-Drools-Artifact到Maven存儲庫

public static void main(String[] args) { 
    String ruleString = "rule \"TestRule\"\nthen\nSystem.out.println(\"This is a testrule.\");\nend"; 

    KieServices kieServices = KieServices.Factory.get(); 

    KieModuleModel kieModuleModel = kieServices.newKieModuleModel(); 
    KieBaseModel kieBaseModel = kieModuleModel.newKieBaseModel("testbase1").setDefault(true); 
    KieSessionModel kieSessionModel = kieBaseModel.newKieSessionModel("testsession1").setDefault(true).setType(KieSessionModel.KieSessionType.STATELESS); 

    KieFileSystem kieFileSystem = kieServices.newKieFileSystem(); 
    kieFileSystem.generateAndWritePomXML(new ReleaseIdImpl("de.itm.test", "testartifact", "0.0.1-SNAPSHOT")); 
    kieFileSystem.write("src/main/resources/testbase1/rule1.drl", ruleString); 

    KieBuilder kieBuilder = kieServices.newKieBuilder(kieFileSystem).buildAll(); 

    // how to now deploy the new artifact so it is available on disc, e.g. in ~/.m2/repository/de/itm/test/test/testartifact/0.0.1-SNAPSHOT/ ? 
} 

回答

4

在這裏你可以看到一個單元測試,做你的要求爲:

https://github.com/kiegroup/drools/blob/master/kie-ci/src/test/java/org/kie/scanner/KieScannerIncrementalCompilationTest.java#L63

基本上是:

MavenRepository repository = MavenRepository.getMavenRepository(); 
repository.deployArtifact(releaseId, kJar1, kPom); 
+0

謝謝你,我還發現了https://github.com/droolsjbpm/droolsjbpm-integration/blob/master/kie-remote/kie-services-client/src/main/java/org/kie /服務s/client/deployment/KieModuleDeploymentHelperImpl.java。我會嘗試在我自己的程序中重新實現Guvnor/KIE-WB的那部分,儘管我目前正在努力使用resourceFilePaths ... –

+0

這是否會上傳到KIE的遠程基礎資源庫中的maven回購? –

+0

@ArunGeorge它可以在maven settings.xml文件中配置遠程回購。 –

相關問題