微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Maven Tycho 和 Eclipse RCP 构建客户端应用程序分发

如何解决使用 Maven Tycho 和 Eclipse RCP 构建客户端应用程序分发

现状:我对在 Eclipse 平台上进行开发非常陌生。我有旧的 Eclipse RCP 多模块应用程序(Java 6),我对其进行了 mavenized(每个模块都有自己的 pom.xml 和依赖项),并尝试将 Maven Tycho(版本 0.22.0)集成到其中 - 主要目标是生成Windows 平台的客户端分发(带有 exe 文件、eclipse 插件功能以及一些 conf 和 init 文件的 zip 文件)。

我有设置功能和目标平台的问题(或者我认为我有问题)。 功能有自己的模块,其中包含以下文件pom.xmlfeature.xmlClient.productconfig.inibuild.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 并且例如包含 includesplugins 之类的:

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

target platform module,list of files

我创建的 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?