0

我目前正在尝试使用 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.xmls 构建?

4

2 回答 2

0

不幸的是,我们无法托管公共 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 存储库,您将不再需要执行这些额外的步骤。带来不便敬请谅解。

于 2013-11-06T15:15:52.137 回答
0

以下 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 安装。

不幸的是......这对你原来的问题没有任何帮助,因为我不能发表评论,所以在这里重新提出......

于 2014-05-16T19:09:47.390 回答