问题
I'm currently trying to build REDHAWK Explorer extensions with the source on github; however, when I try to run the Maven scripts on things, I get a missing repository error:
Caused by: org.eclipse.equinox.p2.core.ProvisionException: No repository found at http://download.redhawksdr.org/nxm-rcp/releases/1.0.
I see it is a repository hosted on redhawksdr.org; is this something that should be up and isn't? I know nxm point to a http://nextmidas.techma.com/; is this an internal plugin that was developed by the Redhawk team, and, as such, is it in the repo as well?
Furthermore, which pom.xmls should I be building from?
回答1:
Unfortunately, we haven't been able to host public p2 repositories. Those are placeholders for a future p2 repository.
You might be able to get around this by building all the repo's and installing them into your local maven repository.
To do this clone each of the maven repositories:
mil.jpeojtrs.sca
gov.redhawk.core
gov.redhawk.ide
gov.redhawk.codegen
gove.redhawk.ide.product
In each repository, as you've seen, you will find a releng folder.
Build by using the following command in this order:
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
Hopefully, in the future we will get public p2 repository and you will not longer have to do these extra steps. Sorry for the inconvenience.
回答2:
The following maven pom.xml should help you build your jacorb OSGi bundle. This bundle specifies version 3.3.0 since RH 1.10 depends on that version, but you could probably modify it for your needs:
<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>
Locally install this bundle with:
mvn clean install
In the eclipse-mil.jpeojtrs.sca/releng/pom.xml remove the reference to redhawk.sdr.org jacorb repo in the project.properties section. Remove the jacorb p2 repository from the project.repositories section.
In the target platform configuration, you'll need to use the Tycho POM first build that Eric references, that will end up looking like this (note the bolded line):
<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>
In mil.jpeojtrs.sca/plugins/idl.cf/META-INF/MANIFEST.MF, remove the bundle requirement for jacorb. The fact that it imports the COsEventChannelAdmin package should suffice since the bundle is already installed locally.
Finally, go to mil.jpeojtrs.sca/releng and run
mvn clean package
Just remember that if you're using maven3.1 or later, you need to change the version of tycho in the POM file to 18.1
Finally, install the zip file as an archive in eclipse and you should be all caught up on your mil.jpeojtrs.sca install.
Unfortunately... this doesn't get you anywhere with regards to your original question, reasked here since I can't leave comments...
来源:https://stackoverflow.com/questions/19776547/building-redhawk-explorer-ide