Local p2 repository broken after new jar added

406 views Asked by At

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.

0

There are 0 answers