gpt4 book ai didi

maven - Maven处理IntelliJ时如何配置OSGI

转载 作者:行者123 更新时间:2023-12-04 09:49:20 24 4
gpt4 key购买 nike

我是 OSGI 新手。

我真的可以使用我可以获得的关于 IntelliJ IDEA/OSGI/Maven/Sling 的任何指导。

所以当我加载它时,实际的 Felix 插件就死了。显然它没有得到维护并且不再与我的意思是 IntelliJ IDEA 13 的最新版本兼容。

所以我已经将框架配置为 felix-framework-4.2.1,这似乎工作正常。我最担心的是,如果我将 OSGI facet 应用到包中,设置似乎表明它将更改包。由于我们在 Maven 中设置了这个,我认为我们不想要这个。该方面的来源似乎是 Osmorc 插件。当我之前使用它时,有人提示 maven 中的某些包没有启用 OSGI,并且 IDE 想要指向一个特殊的 Spring 存储库,用于启用 OSGI 的 jar 依赖项。

既然我们在 Maven 中这样做,我什至应该打扰 Osmorc 吗?有没有更好的方法在 IntelliJ IDEA 中管理 OSGI?知道哪些包启用了 OSGI 很方便,但会出错吗?真的吗?具体来说,我指的是在导入和注释上显示的“包不是由包依赖项导出的”。

最佳答案

我对 的个人观察Intellij IDEA 13 是因为 OSGI 项目检查器在分析使用非 osgi 导出类的类时稍微激进一些。话虽如此,解决这个问题的方法是调整检查员的严重程度。这使您能够使用在 Intellij IDEA 12 中使用的相同的基于 OSGI 的方法。

为此,请进入您的项目设置(在 Mac 上:Command+,),然后导航到以下节点:

Inspections --> OSGI --> Package accessibility

选择后,您将能够将严重性级别从错误更改为警告。

在 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>

希望这可以帮助,
阿杰

关于maven - Maven处理IntelliJ时如何配置OSGI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21465166/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com