构建REDHAWK Explorer / IDE

时间:2013-11-04 20:29:41

标签: maven redhawksdr

我目前正在尝试使用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团队开发的内部插件,因此,它也在回购中吗?

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

2 个答案:

答案 0 :(得分: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存储库,您将不再需要执行这些额外步骤。抱歉给你带来不便。

答案 1 :(得分: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中,删除jacorb的捆绑包要求。它导入COsEventChannelAdmin包的事实应该足够了,因为bundle已经在本地安装。

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

mvn clean package

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

最后,在eclipse中将zip文件作为存档安装,你应该全神贯注于你的mil.jpeojtrs.sca安装。

不幸的是......由于我无法发表评论,因此无法解决原始问题,here因为我无法发表评论......