KieScanner
6.0 KieScanner取代了5.x KnowledgeAgent。 它使用嵌入式Maven允许在运行时解析和检索jar。 6.0应用程序现在可以轻松支持依赖关系和可传递依赖关系; 使用众所周知的Maven语义进行版本控制。 它允许在类路径上进行部署,也可以在运行时动态进行部署。 目前它支持手动“ scanNow”和间隔轮询,将来会添加远程处理。 可以按照以下示例在KieContainer上注册KieScanner:
KieServices kieServices = KieServices.Factory.get();
ReleaseId releaseId = kieServices.newReleaseId( "org.acme", "myartifact", "1.0-SNAPSHOT" );
KieContainer kContainer = kieServices.newKieContainer( releaseId );
KieScanner kScanner = kieServices.newKieScanner( kContainer );
// Start the KieScanner polling the Maven repository every 10 seconds
kScanner.start( 10000L );
在此示例中,将KieScanner配置为以固定的时间间隔运行,但也可以通过在其上调用scanNow()方法来按需运行它。 如果KieScanner在Maven存储库中找到该KieContainer使用的Kie项目的更新版本,它将自动下载新版本并触发新项目的增量构建。 从这一刻起,从该KieContainer创建的所有新KieBases和KieSessions将使用新的项目版本。
安装
部署方式
Settings.xml和远程存储库设置
maven settings.xml用于配置Maven执行。 可以在Maven网站上找到详细说明:http://maven.apache.org/settings.html settings.xml文件可以位于3个位置,实际使用的设置是这3个位置的合并。
- Maven安装:$ M2_HOME / conf / settings.xml
- 用户的安装:$ {user.home} /。m2 / settings.xml
- 系统属性kie.maven.settings.custom指定的文件夹位置
settings.xml用于指定远程存储库的位置。 激活指定远程存储库的配置文件非常重要,通常可以使用“ activeByDefault”完成此操作:
<profiles><profile><id>profile-1</id><activation><activeByDefault>true</activeByDefault></activation>...</profile>
</profiles>
Maven版本和依赖关系 Maven支持多种机制来管理应用程序中的版本控制和依赖关系。 可以使用特定的版本号发布模块,也可以使用SNAPSHOT后缀。 依赖项可以指定要使用的版本范围,也可以利用SNAPSHOT机制。
StackOverflow为此提供了一个很好的描述,下面转载。
- http://stackoverflow.com/questions/30571/how-do-i-tell-maven-to-use-the-latest-version-of-a-dependency
如果您始终想使用最新版本,则Maven有两个关键字可以用作版本范围的替代。 您应该谨慎使用这些选项,因为您将不再控制所使用的插件/依赖项。
当您依赖插件或依赖项时,可以使用LATEST或RELEASE的版本值。 LATEST是指特定工件的最新发行版本或快照版本,是特定存储库中最新部署的工件。 RELEASE是指存储库中的最后一个非快照版本。 通常,设计依赖工件非特定版本的软件并不是最佳实践。 如果您正在开发软件,则可能希望使用RELEASE或LATEST作为便利,以便在发行新版本的第三方库时不必更新版本号。 发布软件时,应始终确保项目依赖于特定版本,以减少构建或项目受不受您控制的软件版本影响的机会。 谨慎使用LATEST和RELEASE。
有关更多详细信息,请参见Maven书籍的POM语法部分。
- http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-pom-syntax.html
- http://books.sonatype.com/mvnref-book/reference/pom-relationships-sect-project-dependencies.html
这是说明各种选项的示例。 在Maven存储库中,com.foo:my-foo具有以下元数据:
<metadata><groupId>com.foo</groupId><artifactId>my-foo</artifactId><version>2.0.0</version><versioning><release>1.1.1</release><versions><version>1.0</version><version>1.0.1</version><version>1.1</version><version>1.1.1</version><version>2.0.0</version></versions><lastUpdated>20090722140000</lastUpdated></versioning>
</metadata>
如果需要依赖该工件,则可以使用以下选项(当然可以指定其他版本范围,只在此处显示相关的版本):声明一个确切的版本(将始终解析为1.0.1):
<version>[1.0.1]</version>
声明一个明确的版本(除非发生冲突,否则当Maven选择一个匹配的版本时,它将始终解析为1.0.1):
<version>1.0.1</version>
声明所有1.x的版本范围(当前将解析为1.1.1):
<version>[1.0.0,2.0.0)</version>
声明一个开放式版本范围(将解析为2.0.0):
<version>[1.0.0,)</version>
将版本声明为最新(将解析为2.0.0):
<version>LATEST</version>
将版本声明为RELEASE(将解析为1.1.1):
<version>RELEASE</version>
请注意,默认情况下,您自己的部署将更新Maven元数据中的“最新”条目,但是要更新“发布”条目,则需要从Maven超级POM激活“发布配置文件”。 您可以使用“ -Prelease-profile”或“ -DperformRelease = true”来执行此操作
翻译自: https://www.javacodegeeks.com/2014/01/deployment-with-drools-6-0.html