I created a local p2 repository using
java -jar c:\\eclipse_neon\\plugins\\org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar -application org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher -metadataRepository file:/C:/p2/my_repo-4.0.x/repository -artifactRepository file:/C:/p2/my_repo-4.0.x/destination -source /C:/p2/my_repo-4.0.x/source -publishArtifacts
Right after that I'm trying to use mvn clean install and get the following error:
[WARNING] No explicit target runtime environment configuration. Build is platform dependent.
[INFO] Adding repository http://download.eclipse.org/releases/latest
[INFO] Adding repository file:/C:/p2/my_repo-4.0.x/repository
[INFO] Resolving dependencies of MavenProject: com.my.project:com.my.project.admin:4.0.0 @ C:\cygwin64\home\ipa_tycho\com.my.project.admin\pom.xml
[INFO] {osgi.os=win32, osgi.ws=win32, org.eclipse.update.install.features=true, osgi.arch=x86_64}
[ERROR] Cannot resolve project dependencies:
[ERROR] Software being installed: com.my.project.admin 4.0.0
[ERROR] Missing requirement: org.apache.aries.blueprint 0.3.0 requires 'java.package; org.apache.aries.util [0.3.0,1.0.0)' but it could not be found
Obviously I need to add a missing dependency which is org.apache.aries.util. In my case this dependency is org.apache.aries.util-0.3.jar. After that I rebuild my p2 repository using the same command as above and mvn clean install shows the below error:
[INFO] Scanning for projects...
[WARNING] No explicit target runtime environment configuration. Build is platform dependent.
[INFO] Adding repository http://download.eclipse.org/releases/latest
[INFO] Adding repository file:/C:/p2/my_repo-4.0.x/repository
[INFO] Resolving dependencies of MavenProject: com.my.project:com.my.project.admin:4.0.0 @ C:\cygwin64\home\ipa_tycho\com.my.project.admin\pom.xml
[ERROR] Internal error: java.lang.RuntimeException: Load repository from url file:/C:/p2/my_repo-4.0.x/repository failed (org.eclipse.equinox.p2.core.ProvisionException: No repository found at file:/C:/p2/my_repo-4.0.x/repository.) -> [Help 1]
org.apache.maven.InternalErrorException: Internal error: java.lang.RuntimeException: Load repository from url file:/C:/p2/my_repo-4.0.x/repository failed (org.eclipse.equinox.p2.core.ProvisionException: No repository found at file:/C:/p2/my_repo-4.0.x/repository.)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:120)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
Caused by: java.lang.RuntimeException: Load repository from url file:/C:/p2/my_repo-4.0.x/repository failed (org.eclipse.equinox.p2.core.ProvisionException: No repository found at file:/C:/p2/my_repo-4.0.x/repository.)
at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider.loadRepository (RepositoryArtifactProvider.java:117)
at org.eclipse.tycho.repository.p2base.artifact.repository.LazyArtifactRepository.getDelegate (LazyArtifactRepository.java:50)
at org.eclipse.tycho.repository.p2base.artifact.repository.LazyArtifactRepository.contains (LazyArtifactRepository.java:87)
at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider.contains (RepositoryArtifactProvider.java:136)
at org.eclipse.tycho.repository.local.MirroringArtifactProvider.contains (MirroringArtifactProvider.java:124)
at org.eclipse.tycho.repository.p2base.artifact.provider.CompositeArtifactProvider.getArtifactFile (CompositeArtifactProvider.java:86)
at org.eclipse.tycho.p2.target.TargetPlatformBaseImpl.getLocalArtifactFile (TargetPlatformBaseImpl.java:163)
at org.eclipse.tycho.p2.resolver.DefaultP2ResolutionResult.lambda$2 (DefaultP2ResolutionResult.java:89)
at org.eclipse.tycho.p2.resolver.DefaultP2ResolutionResultEntry.getLocation (DefaultP2ResolutionResultEntry.java:73)
at org.eclipse.tycho.p2.resolver.P2DependencyResolver.lambda$newDefaultTargetPlatform$2 (P2DependencyResolver.java:481)
at org.eclipse.tycho.core.osgitools.targetplatform.ArtifactCollection.lambda$addArtifactFile$2 (ArtifactCollection.java:66)
at org.eclipse.tycho.core.osgitools.DefaultArtifactDescriptor.getLocation (DefaultArtifactDescriptor.java:62)
at org.eclipse.tycho.core.osgitools.targetplatform.ArtifactCollection.lambda$addArtifact$3 (ArtifactCollection.java:121)
at org.eclipse.tycho.core.osgitools.DefaultArtifactDescriptor.getLocation (DefaultArtifactDescriptor.java:62)
at org.eclipse.tycho.core.osgitools.targetplatform.ArtifactCollection.lambda$addArtifact$3 (ArtifactCollection.java:121)
at org.eclipse.tycho.core.osgitools.DefaultArtifactDescriptor.getLocation (DefaultArtifactDescriptor.java:62)
at org.eclipse.tycho.core.maven.MavenDependencyInjector.collectExternalDependencies (MavenDependencyInjector.java:148)
at org.eclipse.tycho.core.maven.MavenDependencyInjector.addDependency (MavenDependencyInjector.java:132)
at org.eclipse.tycho.core.maven.MavenDependencyInjector.injectMavenDependencies (MavenDependencyInjector.java:65)
at org.eclipse.tycho.p2.resolver.P2DependencyResolver.injectDependenciesIntoMavenModel (P2DependencyResolver.java:501)
at org.eclipse.tycho.core.resolver.DefaultTychoResolver.resolveProject (DefaultTychoResolver.java:173)
at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.lambda$resolveProjects$0 (TychoMavenLifecycleParticipant.java:157)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept (ForEachOps.java:183)
at java.util.stream.WhileOps$1$1.accept (WhileOps.java:99)
at java.util.ArrayList$ArrayListSpliterator.tryAdvance (ArrayList.java:1632)
at java.util.stream.ReferencePipeline.forEachWithCancel (ReferencePipeline.java:127)
at java.util.stream.AbstractPipeline.copyIntoWithCancel (AbstractPipeline.java:502)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:488)
at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:474)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential (ForEachOps.java:150)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential (ForEachOps.java:173)
at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach (ReferencePipeline.java:497)
at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.resolveProjects (TychoMavenLifecycleParticipant.java:188)
at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead (TychoMavenLifecycleParticipant.java:114)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:253)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
Caused by: org.eclipse.equinox.p2.core.ProvisionException: No repository found at file:/C:/p2/my_repo-4.0.x/repository.
at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.fail (AbstractRepositoryManager.java:405)
at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository (AbstractRepositoryManager.java:709)
at org.eclipse.equinox.internal.p2.artifact.repository.ArtifactRepositoryManager.loadRepository (ArtifactRepositoryManager.java:131)
at org.eclipse.equinox.internal.p2.artifact.repository.ArtifactRepositoryManager.loadRepository (ArtifactRepositoryManager.java:125)
at org.eclipse.tycho.p2.remote.RemoteArtifactRepositoryManager.loadRepository (RemoteArtifactRepositoryManager.java:105)
at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider.loadRepository (RepositoryArtifactProvider.java:115)
at org.eclipse.tycho.repository.p2base.artifact.repository.LazyArtifactRepository.getDelegate (LazyArtifactRepository.java:50)
at org.eclipse.tycho.repository.p2base.artifact.repository.LazyArtifactRepository.contains (LazyArtifactRepository.java:87)
at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider.contains (RepositoryArtifactProvider.java:136)
at org.eclipse.tycho.repository.local.MirroringArtifactProvider.contains (MirroringArtifactProvider.java:124)
at org.eclipse.tycho.repository.p2base.artifact.provider.CompositeArtifactProvider.getArtifactFile (CompositeArtifactProvider.java:86)
at org.eclipse.tycho.p2.target.TargetPlatformBaseImpl.getLocalArtifactFile (TargetPlatformBaseImpl.java:163)
at org.eclipse.tycho.p2.resolver.DefaultP2ResolutionResult.lambda$2 (DefaultP2ResolutionResult.java:89)
at org.eclipse.tycho.p2.resolver.DefaultP2ResolutionResultEntry.getLocation (DefaultP2ResolutionResultEntry.java:73)
at org.eclipse.tycho.p2.resolver.P2DependencyResolver.lambda$newDefaultTargetPlatform$2 (P2DependencyResolver.java:481)
at org.eclipse.tycho.core.osgitools.targetplatform.ArtifactCollection.lambda$addArtifactFile$2 (ArtifactCollection.java:66)
at org.eclipse.tycho.core.osgitools.DefaultArtifactDescriptor.getLocation (DefaultArtifactDescriptor.java:62)
at org.eclipse.tycho.core.osgitools.targetplatform.ArtifactCollection.lambda$addArtifact$3 (ArtifactCollection.java:121)
at org.eclipse.tycho.core.osgitools.DefaultArtifactDescriptor.getLocation (DefaultArtifactDescriptor.java:62)
at org.eclipse.tycho.core.osgitools.targetplatform.ArtifactCollection.lambda$addArtifact$3 (ArtifactCollection.java:121)
at org.eclipse.tycho.core.osgitools.DefaultArtifactDescriptor.getLocation (DefaultArtifactDescriptor.java:62)
at org.eclipse.tycho.core.maven.MavenDependencyInjector.collectExternalDependencies (MavenDependencyInjector.java:148)
at org.eclipse.tycho.core.maven.MavenDependencyInjector.addDependency (MavenDependencyInjector.java:132)
at org.eclipse.tycho.core.maven.MavenDependencyInjector.injectMavenDependencies (MavenDependencyInjector.java:65)
at org.eclipse.tycho.p2.resolver.P2DependencyResolver.injectDependenciesIntoMavenModel (P2DependencyResolver.java:501)
at org.eclipse.tycho.core.resolver.DefaultTychoResolver.resolveProject (DefaultTychoResolver.java:173)
at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.lambda$resolveProjects$0 (TychoMavenLifecycleParticipant.java:157)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept (ForEachOps.java:183)
at java.util.stream.WhileOps$1$1.accept (WhileOps.java:99)
at java.util.ArrayList$ArrayListSpliterator.tryAdvance (ArrayList.java:1632)
at java.util.stream.ReferencePipeline.forEachWithCancel (ReferencePipeline.java:127)
at java.util.stream.AbstractPipeline.copyIntoWithCancel (AbstractPipeline.java:502)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:488)
at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:474)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential (ForEachOps.java:150)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential (ForEachOps.java:173)
at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach (ReferencePipeline.java:497)
at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.resolveProjects (TychoMavenLifecycleParticipant.java:188)
at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead (TychoMavenLifecycleParticipant.java:114)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:253)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:566)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
at org.codehaus.classworlds.Launcher.main (Launcher.java:47)
[ERROR]
It's strange that maven can't find my repository after org.apache.aries.util-0.3.jar being added. If I remove this jar and rebuild the repo again, I get the very first error that org.apache.aries.util is missing and maven able to find my repo again.
I have ~100 dependencies in this repository but only org.apache.aries.util-0.3.jar causes this problem with maven.
I add repositories in pom.xml using this code:
<repositories>
<repository>
<id>eclipse-release</id>
<url>${eclipse-repo.url}</url>
<layout>p2</layout>
</repository>
<repository>
<id>my_repo-4.0.x</id>
<url>file:/C:/p2/my_repo-4.0.x/repository</url>
<layout>p2</layout>
</repository>
</repositories>
category.xml for my repository looks like this:
<site>
<category-def name="my_repo-4.0.x" label="my_repo-4.0.x"/>
<iu>
<category name="my_repo-4.0.x"/>
<query><expression type="match">providedCapabilities.exists(p | p.namespace == 'osgi.bundle')</expression></query>
</iu>
</site>
The structure of my repository is like this:
C:.
|
+---p2
|
+---my_repo-4.0.x
|
+-----destination
| | artifacts.xml
| |
| +---plugins
| //Other jars
| org.apache.aries.blueprint_0.3.0.jar
| org.apache.aries.proxy_0.3.0.jar
| org.apache.aries.util_0.3.0.jar
|
|
+------------repository
| content.xml
|
+------------source
| category.xml
|
+---features
+---plugins
//Other jars
org.apache.aries.blueprint-0.3.jar
org.apache.aries.proxy-0.3.jar
org.apache.aries.util-0.3.jar
So the question is why org.apache.aries.util-0.3.jar brakes the repository?
I tried to download this file manually from maven repository as I thought the jar might be broken or corrupted.
Also I tried to use 0.3.1 version of org.apache.aries.*
These didn't help me.