【问题标题】:Building REDHAWK Explorer/IDE构建REDHAWK Explorer/IDE
【发布时间】:2013-11-04 20:29:40
【问题描述】:

我目前正在尝试使用 github 上的源代码构建 REDHAWK Explorer 扩展;但是,当我尝试在事物上运行 Maven 脚本时,我收到了缺少存储库的错误:

Caused by: org.eclipse.equinox.p2.core.ProvisionException: No repository found at http://download.redhawksdr.org/nxm-rcp/releases/1.0.

我看到它是托管在 redhawksdr.org 上的存储库;这是应该出现的东西吗?我知道 nxm 指向一个http://nextmidas.techma.com/;这是 Redhawk 团队开发的内部插件吗?因此,它也在 repo 中吗?

此外,我应该从哪个 pom.xml 构建?

【问题讨论】:

    标签: maven redhawksdr


    【解决方案1】:

    很遗憾,我们无法托管公共 p2 存储库。这些是未来 p2 存储库的占位符。

    您可以通过构建所有 repo 并将它们安装到本地 maven 存储库中来解决此问题。

    为此克隆每个 maven 存储库:

    mil.jpeojtrs.sca
    gov.redhawk.core
    gov.redhawk.ide
    gov.redhawk.codegen
    gove.redhawk.ide.product
    

    如您所见,在每个存储库中,您都会找到一个 releng 文件夹。

    按此顺序使用以下命令进行构建:

    mvn clean install
    
    mil.jpeojtrs.sca/releng
    gov.redhawk.core/releng/core
    gov.redhawk.core/releng/rcp
    gov.redhawk.ide/releng
    gov.redhawk.codegen/releng
    gov.redhawk.ide.product/releng
    

    希望将来我们将获得公共 p2 存储库,您将不再需要执行这些额外的步骤。带来不便敬请谅解。

    【讨论】:

    • 我相对较快地遇到了一个新问题:jacorb 存储库也丢失了;这一次,我在 git 的仓库中搜索,没有找到任何相关的 jacorb 项目。然而,谷歌显示了 jacorb 3.1 版的结果,然后我编辑了 pom 以用作依赖项。这似乎摆脱了这个问题;然而,一个新的立即出现了(仍然是 mil.jpeojtrs.sca/releng)。
    • 依赖Missing requirement: idl.bulkio 1.9.0.qualifier requires 'package org.omg.CosEventChannelAdmin 0.0.0' but it could not be found。另一个快速的 Google 似乎主要包含 Javadocs。我的 java 类路径中是否缺少某些内容?
    • 我忘记了。这些类/包来自 jacorb。我们将 jacorb 重新打包成一个包。为了避免直接依赖 jacorb,我们只添加了 org.omg.CosEventChannelAdmin 包依赖。
    • 您可以使用第谷 POM 首次构建来执行此操作。 wiki.eclipse.org/Tycho/How_Tos/… 就个人而言,我以前从未做过,但看起来很有希望。
    【解决方案2】:

    以下 maven pom.xml 应该可以帮助您构建您的 jacorb OSGi 包。此捆绑包指定版本 3.3.0,因为 RH 1.10 取决于该版本,但您可以根据需要对其进行修改:

    <project xmlns="http://maven.apache.org/POM/4.0.0">
    <groupId>**yourGroupId**</groupId>
    <modelVersion>4.0.0</modelVersion>
    <artifactId>jacorb-osgi</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>bundle</packaging>
    <name>jacORB OSGI bundle</name>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>1.4.0</version>
                <extensions>true</extensions>
                <configuration>
                    <instructions>
                        <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
                        <Bundle-Name>${project.name}</Bundle-Name>
                        <Bundle-Version>3.3.0</Bundle-Version>
                        <Export-Package>org.omg.CosEventChannelAdmin;version="3.3.0", org.omg.CosEventComm;version="3.3.0"</Export-Package>
                        <Private-Package>org.omg.*,org.jacorb.*</Private-Package>
                        <Import-Package>!antlr,!antlr.*,!org.picocontainer,!org.picocontainer.defaults,!org.slf4j,!sun.security.jgss.spi,!org.tanukisoftware.wrapper,*</Import-Package>
                    </instructions>
                </configuration>
            </plugin>
        </plugins>
    </build>
    
    <dependencies>
        <dependency>
                <groupId>org.jacorb</groupId>
                <artifactId>jacorb</artifactId>
                <version>3.3</version>
                <exclusions>
                    <exclusion>
                        <groupId>antlr</groupId>
                        <artifactId>antlr</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.ant</groupId>
                        <artifactId>ant</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>picocontainer</groupId>
                        <artifactId>picocontainer</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-jdk14</artifactId>
                    </exclusion>
        </exclusions>
        </dependency>
        <dependency>
                <groupId>org.jacorb</groupId>
                <artifactId>jacorb-services</artifactId>
                <version>3.3</version>
                <exclusions>
                    <exclusion>
                        <groupId>antlr</groupId>
                        <artifactId>antlr</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.ant</groupId>
                        <artifactId>ant</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>picocontainer</groupId>
                        <artifactId>picocontainer</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-jdk14</artifactId>
                    </exclusion>
        </exclusions>
        </dependency>
    </dependencies>
    </project>
    

    在本地安装此捆绑包:

    mvn clean install
    

    在 eclipse-mil.jpeojtrs.sca/releng/pom.xml 中删除 project.properties 部分中对 redhawk.sdr.org jacorb repo 的引用。 从 project.repositories 部分中删除 jacorb p2 存储库。

    在目标平台配置中,您需要首先使用 Eric 引用的 Tycho POM 构建,最终看起来像这样(注意粗体线):

    <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>target-platform-configuration</artifactId>
        <version>${tycho-version}</version>
        <configuration>
          **<pomDependencies>consider</pomDependencies>**
          <environments>
            <environment>
              <os>linux</os>
              <ws>gtk</ws>
              <arch>x86</arch>
            </environment>
    

    在 mil.jpeojtrs.sca/plugins/idl.cf/META-INF/MANIFEST.MF 中,删除对 j​​acorb 的捆绑要求。它导入 COsEventChannelAdmin 包这一事实就足够了,因为该包已经在本地安装了。

    最后,转到 mil.jpeojtrs.sca/releng 并运行

    mvn clean package
    

    请记住,如果您使用的是maven3.1或更高版本,则需要将POM文件中的tycho版本更改为18.1

    最后,在 Eclipse 中将 zip 文件作为存档安装,然后您应该就可以安装 mil.jpeojtrs.sca 了。

    不幸的是...对于您最初的问题,这对您没有任何帮助,here,因为我不能离开 cmets...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-25
      • 2015-10-20
      • 1970-01-01
      • 1970-01-01
      • 2022-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多