如何解决使用 Maven Tycho 和 Eclipse RCP 构建客户端应用程序分发
现状:我对在 Eclipse 平台上进行开发非常陌生。我有旧的 Eclipse RCP 多模块应用程序(Java 6),我对其进行了 mavenized(每个模块都有自己的 pom.xml 和依赖项),并尝试将 Maven Tycho(版本 0.22.0)集成到其中 - 主要目标是生成Windows 平台的客户端分发(带有 exe 文件、eclipse 插件和功能以及一些 conf 和 init 文件的 zip 文件)。
我有设置功能和目标平台的问题(或者我认为我有问题)。
功能有自己的模块,其中包含以下文件:pom.xml
、feature.xml
、Client.product
、config.ini
和 build.properties
。
功能的pom.xml
:
<parent>
...
</parent>
<groupId>myproject</groupId>
<artifactId>feature</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>eclipse-feature</packaging>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>0.22.0</version>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
feature.xml
包含
version="1.0.0.qualifier
并且例如包含 includes
和 plugins
之类的:
<includes
id="org.eclipse.rcp"
version="0.0.0"/>
<plugin
id="org.eclipse.equinox.preferences"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
问题是如何使用 target-platform module
文件设置 target-platform.target
以将我的插件正确定位为 JAR 文件?
目标平台的pom.xml
:
<parent>
...
</parent>
<groupId>myproject</groupId>
<artifactId>target-platform</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>eclipse-target-deFinition</packaging>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>0.22.0</version>
<extensions>true</extensions>
</plugin>
</plugins>
</build>
target-platform.target
文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde version="3.6"?>
<target name="target-platform" sequenceNumber="9">
<locations>
<location path="v3_7_2/eclipse-platform" type="Directory"/>
</locations>
<environment>
<os>win32</os>
<ws>win32</ws>
<nl>cs_CZ</nl>
</environment>
<targetJRE
path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<launcherArgs>
<vmArgs>-Xmx1024m</vmArgs>
<programArgs>-consoleLog</programArgs>
</launcherArgs>
</target>
我创建的 Pom 文件,其他文件是 eclipse RCP 项目的一部分。当我调用 maven install
时出现此错误:
...
[DEBUG] Using default execution environment 'JavaSE-1.6'
[DEBUG] Registered artifact repository org.eclipse.tycho.repository.registry.facade.RepositoryBlackboardKey(uri=file:/resolution-context-artifacts@/tigra/cz.tigra.spl.client.feature)
[DEBUG] Added 0 locally built units to the target platform
[INFO] Resolving dependencies of MavenProject: cz.tigra.spl:cz.tigra.spl.client.feature:1.0.0-SNAPSHOT @ /tigra/cz.tigra.spl.client.feature/pom.xml
[DEBUG] No solution found because the problem is unsatisfiable.: [Unable to satisfy dependency from cz.tigra.spl.client.feature.feature.group 1.0.0.qualifier to org.eclipse.rcp.feature.group 0.0.0.; Unable to satisfy dependency from cz.tigra.spl.client.feature.feature.group 1.0.0.qualifier to org.eclipse.equinox.preferences 0.0.0.;
etc....
...
[ERROR] Cannot resolve project dependencies:
[ERROR] Software being installed: cz.tigra.spl.client.feature.feature.group 1.0.0.qualifier
[ERROR] Missing requirement: cz.tigra.spl.client.feature.feature.group 1.0.0.qualifier requires 'org.eclipse.rcp.feature.group 0.0.0' but it Could not be found
我还阅读了这篇文章,它帮助我设置了 maven tycho - https://www.vogella.com/tutorials/EclipseTycho/article.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。