我有一个OSGi项目,我正在使用Maven。在一个包中我需要import org.osgi.util.tracker.ServiceTracker
,但由于一些莫名其妙的原因,Netbeans不断告诉我包org.osgi.util.tracker
不存在。但确实如此。见这个截图:
我在我的依赖项中明显有felix框架。它确实存在于我的硬盘上,其路径设置正确。我可以解压缩jar并导航到我想要导入的类,它实际上在相应的包中(如文件夹树中所示)。
到底发生了什么事? :(
编辑:Business的pom.xml是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>library-parent</artifactId>
<groupId>org.lib</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>org.lib</groupId>
<artifactId>business</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>bundle</packaging>
<name>business OSGi Bundle</name>
<dependencies>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.osgi.core</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>model</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>integration</artifactId>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>utils</artifactId>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.framework</artifactId>
<version>4.2.1</version>
<type>jar</type>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.7</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-Activator>org.lib.business.BusinessActivator</Bundle-Activator>
<Export-Package >org.lib.business</Export-Package>
<Private-Package>org.lib.business.*</Private-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
</project>