Eclipse 产品导出缺少共享库

问题描述 投票:0回答:1

我一直在导出 Eclipse 产品,并在运行二进制启动器时遇到“### 可执行启动器无法找到其配套共享库”。

这个问题是在使用标准 Eclipse 产品导出向导时首次遇到的。我确实检查了本机工件选项。 (是的,我知道,它不受支持......然后告诉 Eclipse 基金会将其从系统中删除)。之前解决了这个导出问题后,我开始学习使用第谷构建我的产品。

然后令我恼火的是,在成功获得构建和明显完整的导出后,我在开始时收到相同的共享对象消息。

我花了几周的时间试图从 Eclipse 导出有效的产品,但现在我对此已经失去了耐心。显然这个问题不是构建系统的问题(似乎是 P2 导演问题?或者可能与我指定插件和功能的方式有关 - 我根本不使用功能)。我对下一步该尝试什么感到束手无策。

Linux GTK x86 上的 Eclipse4 23-12(之前的导出工作在 23-09,相同的 .project 文件,但更新了 .target)。如果有帮助的话,很高兴发布我的 POM 文件。

项目构建由

定义
    parent-project (ORACBuild)
    pom.xml
    |
    +-au.csiro.orac: E4Application plug-in with pom.xml
    +-..
    +-..  Multiple other plugins (all with own pom.xml)
    +-..
    |
    +-au.csiro.product
        |
        + LABX.product
        + pom.xml

顶级 pom(父级、公共):

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>au.csiro.orac</groupId>
    <artifactId>releng</artifactId>
    <version>24.04.1-TEST</version>
    <packaging>pom</packaging>

    <properties>
        <tycho.version>4.0.5</tycho.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.eclipse.tycho</groupId>
                    <artifactId>tycho-p2-director-plugin</artifactId>
                    <version>${tycho.version}</version>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-maven-plugin</artifactId>
                <version>${tycho.version}</version>
                <extensions>true</extensions>
            </plugin>
            <!--Enable the replacement of the SNAPSHOT version in the final product configuration-->
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-packaging-plugin</artifactId>
                <version>${tycho.version}</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <id>package-feature</id>
                        <configuration>
                            <finalName>
                                ${project.artifactId}_${unqualifiedVersion}.${buildQualifier}</finalName>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>target-platform-configuration</artifactId>
                <version>${tycho.version}</version>
                <configuration>
                    <!-- Optional set the Java version you are using-->
                    <executionEnvironment>JavaSE-17</executionEnvironment>
                    <target>
                        <file>LABX.target</file>
                        <!--<file>../target-platform/target-platform.target</file>-->
                    </target>
                    <environments>
                        <environment>
                            <os>linux</os>
                            <ws>gtk</ws>
                            <arch>x86_64</arch>
                        </environment>
                        <environment>
                            <os>win32</os>
                            <ws>win32</ws>
                            <arch>x86_64</arch>
                        </environment>
                        <environment>
                            <os>macosx</os>
                            <ws>cocoa</ws>
                            <arch>x86_64</arch>
                        </environment>
                    </environments>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <modules>
        <module>au.csiro.orac.one</module>
    </modules>
</project>

产品项目POM:

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>au.csiro.orac.product</groupId>
    <artifactId>au.csiro.orac.product</artifactId>
    <packaging>eclipse-repository</packaging>
    <name>ORAC1</name>
    <parent>
        <groupId>ORACBuild</groupId>
        <artifactId>ORACBuild</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <relativePath>../ORACBuild</relativePath>
    </parent>
    <build>
        <plugins>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-p2-director-plugin</artifactId>
                <version>4.0.5</version>
                <executions>
                    <execution>
                        <!-- install the product using the p2 director -->
                        <id>materialize-products</id>
                        <goals>
                            <goal>materialize-products</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>archive-products</id>
                        <goals>
                            <goal>archive-products</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

还有 E4Application 插件 pom:

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>au.csiro.orac</groupId>
    <artifactId>au.csiro.orac.one</artifactId>
    <packaging>eclipse-plugin</packaging>
    <name>au.csiro.orac.one</name>
    <parent>
        <groupId>ORACBuild</groupId>
        <artifactId>ORACBuild</artifactId>
        <version>1.0.0-SNAPSHOT</version>
        <relativePath>../ORACBuild</relativePath>
    </parent>
</project>

我解压生成的 GTK 二进制文件,当它运行时,会出现一个对话框,其中显示消息“ORAC 可执行启动程序无法找到其配套共享库”。 (虽然该项目也定义了WIN和OSX目标,但我没有尝试运行它们)

我将添加以下观察结果:

该系统的最后一次成功构建使用 Eclipse 23.06,并通过产品导出完成。在此导出中,插件文件夹包含“org.eclipse.equinox.launcher.gtk.linux.x86_64_1.2.700.v20221108-1024/eclipse_11801.so”和configuration/org.eclipse.osgi中的四个“libswt*.so”文件.

此产品是使用 Eclipse 2312 构建的。无论使用导出向导还是使用 Tycho P2 导出器导出,它都不包含任何类型的“.so”(或 DLL 或 DYLIB)文件。

eclipse export p2 shared-objects
1个回答
0
投票

在发布对原始问题的编辑时,我突然想到检查构建是否在 23-09 中有效,但在 23-12 中无效。 23-12 构建在两个单独的 Eclipse 安装上失败。确认这一点后,我安装了 Eclipse 24-03 的全新副本并运行构建。令我松了一口气的是,该构建没有出现丢失共享对象的问题。

尽我所能进行测试,看来 23-12 版本的 Eclipse 和我所拥有的特定构建定义存在问题。我找不到任何相关的错误报告,并且愿意接受关于为什么它不起作用的建议。

© www.soinside.com 2019 - 2024. All rights reserved.