I'm trying to build a plugin that depends on org.apache.uima.runtime
, which is part of the UIMA Eclipse plugins hosted on the UIMA Eclipse update site. This update site is an old-style (pre-p2) update site, so I know that Tycho won't resolve those dependencies. So I'm trying to make a local copy of the UIMA Eclipse update site, upgrade it to p2, and then get the dependencies from there. Here's what I tried:
$ svn co http://svn.apache.org/repos/asf/uima/uimaj/trunk/uimaj-eclipse-update-site/
...
Checked out revision 1395335.
$ java -jar /.../eclipse/plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar \
-application org.eclipse.equinox.p2.publisher.UpdateSitePublisher \
-metadataRepository file:/.../uimaj-eclipse-update-site \
-artifactRepository file:/.../uimaj-eclipse-update-site \
-source /.../uimaj-eclipse-update-site
Generating metadata for ..
Generation completed with success [0 seconds].
If I look at the uimaj-eclipse-update-site
directory, I now see an artifacts.xml
and a content.xml
, so that seems right. I also checked it with the p2 repository browser, and nothing shows up as "PARTIAL", and I can see an org.apache.uima.runtime.feature.jar 2.4.0
and an org.apache.uima.runtime.feature.group 2.4.0
.
I now add this local site to the pom.xml of my Eclipse plugin:
<repository>
<id>uima</id>
<layout>p2</layout>
<url>file:/.../uimaj-eclipse-update-site</url>
</repository>
When I run mvn compile
in my updated project, Tycho finds the local update site, but still can't find org.apache.uima.runtime
:
...
[INFO] Adding repository file:/.../uimaj-eclipse-update-site
[INFO] Adding repository file:/.../uimaj-eclipse-update-site
[INFO] Resolving dependencies of MavenProject: org.cleartk:org.cleartk.plugin.jcasgen.m2e:0.9.1.qualifier @ /.../jcasgen-m2e-connector/org.cleartk.plugin.jcasgen.m2e/pom.xml
[INFO] Cannot complete the request. Generating details.
[INFO] Cannot complete the request. Generating details.
[INFO] {osgi.ws=cocoa, osgi.os=macosx, osgi.arch=x86_64, org.eclipse.update.install.features=true}
[ERROR] Cannot resolve project dependencies:
[ERROR] Software being installed: org.cleartk.plugin.jcasgen.m2e 0.9.1.qualifier
[ERROR] Missing requirement: org.cleartk.plugin.jcasgen.m2e 0.9.1.qualifier requires 'bundle org.apache.uima.runtime [2.4.0,3.0.0)' but it could not be found
[ERROR]
[ERROR] Internal error: java.lang.RuntimeException: "No solution found because the problem is unsatisfiable."
...
What am I doing wrong?
If you want to replicate the error, I'm running mvn compile
from this directory (after modifying the pom.xml as above):
http://cleartk.googlecode.com/git/jcasgen-m2e-connector/
EDIT: I do see org.apache.uima.runtime
in the generated artifacts.xml
:
<artifact classifier='org.eclipse.update.feature' id='org.apache.uima.runtime' version='2.4.0'>
<properties size='4'>
<property name='artifact.size' value='9466'/>
<property name='download.size' value='9466'/>
<property name='download.md5' value='f9d4f1f8dc54f0a99379dcede2fc2700'/>
<property name='download.contentType' value='application/zip'/>
</properties>
</artifact>
Browsing the svn repo link, it looks like the plugins directory is empty and there are only features present. You may just need to run maven first to "build" it and populate the plug-ins directory.
If you have all of the content you could run the p2 features and bundles publisher application to generate a p2 repository directly. If it is to be consumed in a Tycho build the category side of the update site does not need to be generated.