我目前正在尝试使用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构建?
答案 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因为我无法发表评论......