我发现当我使用org.ops4j.pax.exam.CoreOptions.mavenBundle从maven存储库部署bundle时,部署只需不到一分钟,但是当我使用org.ops4j.pax部署相同的bundle时。 exam.CoreOptions.bundle,指定一个文件:url到本地文件系统上的bundle,部署需要8分钟。我期望CoreOptions.bundle更快,因为它访问本地文件。在使用CoreOptions.bundle时,我可以做些什么来加速部署?
以下是我正在使用的版本:
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-container-karaf</artifactId>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam-junit4</artifactId>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>org.ops4j.pax.exam</groupId>
<artifactId>pax-exam</artifactId>
<version>4.4.0</version>
</dependency>
<dependency>
<groupId>org.ops4j.pax.url</groupId>
<artifactId>pax-url-aether</artifactId>
<version>2.4.0</version>
</dependency>
以下是我用于从文件系统部署捆绑包的代码:
// Inject our local bundle dependencies
URI deployBundlesDirUri = new File(deployBundlesDir).toURI();
for (String bundle : localBundles) {
String name = deployBundlesDirUri.resolve(bundle).toString();
options.add(bundle(name).start());
}
以下是我从maven repo部署相同捆绑包时使用的代码:
// Inject our maven dependencies
for (String[] dep : mavenDependencies) {
options.add(mavenBundle()
.groupId(dep[0])
.artifactId(dep[1])
.versionAsInProject().update(true).start()
);
}