我已经创建了一个锅炉板项目,遵循vogella的广泛Tycho教程。
事实:
问题:
>
我不知道哪个<code>pom。xml是否包含第三方依赖项。
我不能将它们包含在RCP项目中,因为pom的打包是< code>eclipse-plugin,而不是< code>jar。据我所知,如果我将打包改为< code>jar,那么“Maven Dependencies”库就会自动添加。如果我改回< code>eclipse-plugin,它们就会被删除。
问题:
jar
打包的pom。相关解决方案:
只是将插件添加到pom依赖项并包含条目
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho.version}</version>
<configuration>
<!-- The configuration to make tycho consider the maven dependencies -->
<pomDependencies>consider</pomDependencies>
<!-- other configurations -->
</configuartion>
</plugin>
<!-- other plugins-->
</plugins>
<dependencies>
<!-- An example third-party bundle (plugin) present in maven repository-->
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.gogo.shell</artifactId>
<version>1.1.0</version>
</dependency>
</dependencies>
参考链接在这里。
我认为你有一个根本性的误解。
Maven:Maven通过pom.xml确定所有项目依赖项,并自动解析传递依赖项(假设所有pom文件和工件都存在于您已配置并正确声明其依赖项的存储库中)。
Tycho:问题是Eclipse已经有了自己的基于产品文件、feature.xml文件和插件清单的项目模型。MF文件。Tycho为Eclipse利用了Maven机制,但其思想是pom.xml文件只是配置Maven插件并声明打包类型。这为Maven提供了一个切入点,但随后第谷接管了它。Maven通常从pom.xml文件中的信息构建依赖关系链,而Tycho从产品、特性和清单中的信息构建依赖关系变更。MF文件。您没有在pom.xml文件中放置任何依赖项。Tycho还使用Eclipse p2存储库(而不是普通的Maven存储库)来查找在本地模块或目标平台中找不到的依赖插件。
这对许多Eclipse开发人员来说实际上是一个好处,因为他们已经在Eclipse插件、特性和产品中正确地设置了一切。他们不想重复pom.xml中的所有依赖项。
在Eclipse插件中使用库:在Eclipse中,如果您想使用尚未打包为Eclipse插件的库,您有几个选项。您的插件可以在libs文件夹中包含一组JAR,然后在插件和运行时类路径中包含该libs文件夹(参见build.properties文件)。另一个选项是创建您自己的“库插件”,将JAR库重新打包为Eclipse插件。另请参见https://wiki.eclipse.org/FAQ_What_is_the_classpath_of_a_plug-in?.这就是您上面得到的答案。
问题是,如果您试图通过Maven将一个包含多个jar的复杂库包含在一个标准Java项目中。在我的项目中,我们在新泽西JAX-RS实现中遇到了这个问题。没有一个p2存储库将所有的库作为插件包含在正确的依赖信息中。
简单的解决方案:如果您需要一个公共库,请先检查Orbit项目,看看这些库是否已经打包为Eclipse插件,http://www.eclipse.org/orbit/.在这种情况下,您可以下载它们并将它们包含在您的目标平台中,或者您可以在(Tycho)构建时从它们的p2存储库中动态提取它们。您的插件将仅将这些插件作为依赖项包含在它们的MANIFEST.MF文件中。
变通方法/解决方案:在我们的例子中,Jersey JAX-RS不可用作Eclipse插件,它有一系列可传递的依赖关系。解决方法是使用两个pom文件创建一个Eclipse“库插件”,就像我前面提到的那样。我们最初创建了一个带有空libs文件夹的框架插件。一个pom文件只是带有<code>的标准Maven pom文件
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>compile</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>libs</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<罢工> 实际上,我们最终用pom手动运行Maven来更新库,然后我们将插件及其所有依赖的jar签入源代码控制。 稍后检查构建时,我发现在开始构建的Maven/Tycho部分之前,我们实际上用单独的构建任务动态地填充了libs文件夹。当然,插件的MANIFEST-MF文件的Bundle-ClassPath和Export-Package条目直接来自源代码控制。我们必须不时地检查它们,以确保它们与我们从Maven获得的库和包相匹配。(除非我们升级主要的库版本或者在Maven级别添加新的依赖项,否则这不会有太大的变化。)插件的build.properties将libs/文件夹作为bin.includes的一部分。
在开发环境中,在我们第一次签出代码后,我们只需在项目的“复制依赖项”pom文件上运行mvn(带有外部工具启动配置,也与项目一起签入)。这用所有的JAX-RS库和依赖项填充libs文件夹。我们只需要在更新依赖关系或者在拥有不同版本的JAX-RS依赖关系的分支之间跳转时,再运行一次。我们就位了。gitignore确保我们不会将库提交给Git。
这个项目的另一个pom被设置为一个普通的Tycho pom文件,带有<code>
所以,这有点乱,但这是我们几年前遇到这个问题时找到的最好的解决方案。我不确定Tycho是否正在做任何工作来允许某种混合Maven/Tycho构建,这可以作为构建的一部分自动完成。我想我应该问问开发商。:)
您的问题:
总结:根本问题是 Eclipse 插件无法“看到”裸露的 JAR 库。插件需要将库包含在其本地 libs 文件夹中(在 MANIFEST 中具有匹配的 Bundle-ClassPath 条目。MF),或者它需要依赖于导出相应包的其他插件。第谷只是通过 Eclipse 插件解析依赖关系,它不能直接利用普通的 Maven 依赖解析来拉入一堆 JAR。如果您的所有依赖项都已经是插件,则没问题。如果没有,您可能必须使用上述解决方法打包一组库以供插件使用。
我们是否可以将Azure Applications Insight dashboard嵌入到我们的一个第三方站点中,以允许我们的客户查看它提供的信息? 我还知道,使用API手动构建这些仪表板是可能的,但是,简单地获取Azure门户中创建的度量图的嵌入式代码会更好。 有人能做到吗?
应用第三方库 ThinkCMF5.1支持应用自己安装第三方库,下面以 demo应用为例讲一下如何在应用中引入第三方库 创建 composer.json 在demo 应用根目录app/demo中创建composer.json文件 { "name": "thinkcmf/apps-demo", "description": "ThinkCMF demo app", "type"
mvn安装:install-file-dfile=~/dropbox/github/chatappserver/synthetica.jar-dgroupid=de.javasoft.plaf-dartifactid=synthetica-dversion=1.0.0-dpackaging=jar (这是针对syntheticablackeye.jar的) mvn安装:install-file-d
我想使用kafka-clients作为我的keycloak模块,以便将每个登录事件发布到它中。 我应该造个耳朵吗?一场战争?一个罐子够吗?
针对如何在app中打开第三方的应用这个问题,本文将以打开新浪微博为例做详细讲解。 1.配置所要打开的应用 在Native/plugins文件夹下新建所要打开的应用的文件夹,其中有配置文件plugin.xml。 以新浪微博为例: plugin.xml内容如下: <?xml version="1.0" encoding="UTF-8"?> <plugin xmlns="http://apache.
问题内容: 我想使用jQuery和其他不是React本身的第三方库。如何在我的React项目中使用它们?我读到的是调用第三方库的好地方。 不幸的是,即使我已经正确地将脚本标记链接到index.html文件中的那些库,但由于不断收到“未定义”错误,所以我无法使用这些库。 问题答案: 您有两个选择,均由一个人为设计的示例演示,其中我使用jQuery淡出了无序列表。两种方法都各有利弊,我先强调两种方法,