我当前设置中最麻烦的部分是由于Tycho显然无法处理只使用Maven(即非OSGi)的工件。我当前的设置如下所示:
>
在每个Eclipse插件的pom.xml
中,我在initialize
阶段向maven-dependency-plugin
发出unpack
目标。这将把我指定的工件解压缩到单独的target/dependencies
目录中。
target/dependencies
目录作为输出目录添加到build.properties
中,以便Tycho在编译时将其添加到类路径中:
source.. = src/main/java/
output.. = target/classes/
output.. = target/dependencies/
这些设置允许compile
Maven指令编译插件。从VCS导入项目,并手动指定target/dependencies
目录作为Eclipse中的类文件夹,这样IDE也可以编译插件。
不幸的是,这是一个相当麻烦的解决方案,原因有几个:
>
配置maven-dependency-plugin
需要列出所有应该解压缩的工件。可以使用unpack-dependencies
而不是unpack
,但这也会解压缩所有OSGi依赖项--在每个项目目录中解压缩一半的Eclipse并不是我想要的乐趣...
同样,从Tycho项目查看依赖项的源代码不会显示主源文件,而是显示target/dependencies
中可用的任何内容--很可能只是.class
文件。
我认为必须有一种更合理的方法来实现这一点--允许Eclipse和Maven项目更紧密地集成。
那么,我错过了什么?这个用例的建议设置是什么?还有更好的选择吗?最好是一些不需要设置一堆Nexus和/或p2存储库的东西?
我们似乎采用了类似的策略。但是,我使用nexus混合存储库(同时拥有maven和p2)。
<plugin>
<!-- Copy non-Ecipse plugins to target/dependency so that may be referenced
for runtime use. -->
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<id>copy-dependencies</id>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<excludeGroupIds>org.XXX</excludeGroupIds>
</configuration>
</execution>
<execution>
<id>classpath</id>
<goals>
<goal>build-classpath</goal>
</goals>
<configuration>
<fileSeparator>/</fileSeparator>
<prefix>target/dependency</prefix>
<outputFile>${project.build.directory}/classPath.txt
</outputFile>
</configuration>
</execution>
</executions>
</plugin>
bin.includes = META-INF/,
target/classes/,
plugin.xml,
target/dependency/mongo-java-driver-2.11.3.jar
Bundle-ClassPath: .,
target/classes/,
target/dependency/mongo-java-driver-2.11.3.jar
我们用Maven和Tycho构建了一个Eclipse插件。然而,目前我们仍然通过一堆手动添加的JAR文件而不是Maven来提供所有的项目依赖。这是由于以下原因:(1)依赖项不能通过标准的Eclipse更新站点获得(至少不能在当前版本中获得),(2)依赖项不能作为捆绑包获得。 这些依赖项中最大的部分是Selenium库(API,远程,特定于浏览器的库及其传递依赖项,例如Guava等)。 我浪费了几个
问题内容: 根据我的经验,Maven在小型/实验性应用程序中常常是过大的。但是,依赖管理是Maven的一项非常有用的功能,实际上是唯一对上述应用程序类型真正有用的功能。 我想知道是否可以有一个 非常最小的轻量级 Eclipse-Maven集成,该集成 仅以 最简单的方式 仅 将Maven依赖项添加到Eclipse项目类路径中。 特别是我不想: 适用于任何Maven约定(包括项目布局召集人) 安装并
我遇到了一个关于OSGI包和“普通”maven jar依赖关系的问题。 A.M是普通的java应用程序,它启动OSGI框架并加载包。 在项目顶层pom(a.pom)中,我定义了一个commons-logging-1.1.1的依赖项,然后在OSGI包a.x中使用commons-logging。maven-bundle-plugin为a.x生成清单,其中包含一个发生“commons-logging”的
在下面的示例中,OSGi解析和Maven依赖支持中所需的步骤似乎存在差异/重复。 我有一个jar,它依赖于外部第三方jar,在本例中时间为4J。 然后,我可以通过导入包并运行等方式在本地运行我的简单jar。 当导入OSGi时,我必须确保首先导入这个jar,通常使用PAX包装URL。 这对于一个jar依赖关系是可以的,但是当有多个依赖关系时又如何。我可以使用features.xml文件来收集这些JA
我是OSGI开发的新手,很难理解如何最好地处理依赖的JAR。 也就是说,如果我要创建一个bundle,我可能需要使用几个第三方jar。当我创建bundle JAR以部署到OSGI时,显然这些第三方JAR不包括在内,因此bundle将无法运行。
我们有一个多模块maven项目,它最近由Ant Ivy转换而来。其中一个模块是一个遗留的自定义可插入组件,它在类路径上查找插件并加载它们。多模块项目中的另一个模块是由上述插件运行的插件实现。 当从eclipse运行配置运行自定义应用程序服务器时,我们必须在类路径上包含每个插件。当我们在eclipse工作区中构建时,这些插件并没有编译成jar。因此,没有要包含的jar工件。 如果我将插件模块项目作为