use*_*607 7 osgi intellij-idea maven sling
我是一个OSGI新手.
我可以使用任何关于IntelliJ IDEA/OSGI/Maven/Sling的指导.
所以当我加载它时,实际的Felix插件会死掉.显然它没有被维护,并且不再与最新版本兼容,我的意思是IntelliJ IDEA 13.
所以我已经将框架配置为felix-framework-4.2.1,这似乎工作正常.我最关心的是,如果我将OSGI方面应用于一个包,设置似乎表明它将改变包.既然我们在Maven中设置了这个,我认为我们不想要这个.facet的来源似乎是Osmorc插件.当我之前使用它时,有人抱怨maven中的某些软件包没有启用OSGI,并且IDE希望指向一个特殊的Spring存储库,用于启用OSGI的jar依赖项.
由于我们在Maven中这样做,我是否应该打扰Osmorc?有没有更好的方法来管理IntelliJ IDEA中的OSGI?知道哪些软件包启用OSGI很方便,但错误呢?真?具体来说,我指的是"包依赖关系不会导出包",显示在导入和注释上.
小智 17
我对Intellij IDEA 13的个人观察是,OSGI项目检查员在分析使用非osgi导出类的类时会稍微积极一些.话虽这么说,解决这个问题的方法是调整检查员的严重程度.这使您可以使用在Intellij IDEA 12中使用的基于OSGI的相同方法.
为此,请进入项目设置(在Mac上:Command+ ,),然后导航到以下节点:
Inspections --> OSGI --> Package accessibility
Run Code Online (Sandbox Code Playgroud)
选择后,您将能够将严重性级别从错误更改为警告.
在pom.xml中进行一些更改时,必须执行此更改:
<dependencies>
.
.
<dependency>
<groupId>com.pkg.name</groupId>
<artifactId>some-non-osgi-artifact</artifactId>
<version>0.1-EXAMPLE</version>
</dependency>
</dependencies>
<build>
<plugins>
.
.
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>${maven-bundle-plugin.version}</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Version>${project.version}</Bundle-Version>
<Export-Package>
you.know.what.goes.here
</Export-Package>
<Private-Package>you.know.what.goes.here</Private-Package>
<Import-Package>
*
</Import-Package>
<Embed-Dependency>some-non-osgi-artifact;scope=compile|runtime;inline=false</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>
<Embed-StripGroup>true</Embed-StripGroup>
</instructions>
</configuration>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
希望这会有所帮助,Ajay
归档时间: |
|
查看次数: |
14090 次 |
最近记录: |