recently we noticed support for file-based target platform and we give it a try and it works. Great job and thanks for supporting this scenario!
We noticed one issue that complicates its deployment and it is related to bundle shape directory, where we currently need to convert plugin into different format (jar) before we start a build and then revert it back (dir) using some custom script.
If plugin in target platform is not jar file, but directory with all plugin contents and libs, the tycho build stops and throws attached exception. Is it issue or directory bundles in target platform are not supported?
I've looked into gerrit change request and it looks like that only jar plugins are published into local maven repo and directories in target platform are skipped. Is there some better way than converting these bundles into jar and then back?
Caused by: java.io.FileNotFoundException: /target-platform-eclipse/org.apache.ant_1.10.3.v20180417-1627 (Is a directory)
at java.io.FileInputStream.open0 (Native Method)
at java.io.FileInputStream.open (FileInputStream.java:219)
at java.io.FileInputStream.<init> (FileInputStream.java:157)
at org.eclipse.tycho.p2.resolver.FileTargetDefinitionContent$FileArtifactRepository.getRawArtifact (FileTargetDefinitionContent.java:228)
at org.eclipse.tycho.p2.resolver.FileTargetDefinitionContent$FileArtifactRepository.getArtifact (FileTargetDefinitionContent.java:286)
at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider.getArtifactFromOneMirror (RepositoryArtifactProvider.java:246)
at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider.getArtifactFromAnyMirror (RepositoryArtifactProvider.java:226)
at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider$1.perform (RepositoryArtifactProvider.java:201)
at org.eclipse.tycho.p2.resolver.FileTargetDefinitionContent$FileArtifactRepository.getArtifacts (FileTargetDefinitionContent.java:308)
at org.eclipse.tycho.repository.p2base.artifact.repository.ListCompositeArtifactRepository.getArtifacts (ListCompositeArtifactRepository.java:210)
at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider.getArtifactFromAnyChildRepository (RepositoryArtifactProvider.java:213)
at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider.getArtifactFromAnyFormatAvailableInRepository (RepositoryArtifactProvider.java:180)
at org.eclipse.tycho.repository.p2base.artifact.repository.RepositoryArtifactProvider.getArtifactFromAnySource (RepositoryArtifactProvider.java:166)
at org.eclipse.tycho.repository.p2base.artifact.provider.CompositeArtifactProviderBaseImpl.getArtifact (CompositeArtifactProviderBaseImpl.java:52)
at org.eclipse.tycho.repository.local.MirroringArtifactProvider.downloadCanonicalArtifact (MirroringArtifactProvider.java:244)
at org.eclipse.tycho.repository.local.MirroringArtifactProvider.downloadMostSpecificNeededFormatOfArtifact (MirroringArtifactProvider.java:237)
at org.eclipse.tycho.repository.local.MirroringArtifactProvider.downloadArtifact (MirroringArtifactProvider.java:222)
at org.eclipse.tycho.repository.local.MirroringArtifactProvider.makeOneFormatLocallyAvailable (MirroringArtifactProvider.java:211)
at org.eclipse.tycho.repository.local.MirroringArtifactProvider.makeLocallyAvailable (MirroringArtifactProvider.java:182)
at org.eclipse.tycho.repository.local.MirroringArtifactProvider.getArtifactFile (MirroringArtifactProvider.java:121)
at org.eclipse.tycho.repository.p2base.artifact.provider.CompositeArtifactProvider.getArtifactFile (CompositeArtifactProvider.java:85)
at org.eclipse.tycho.p2.target.TargetPlatformBaseImpl.getLocalArtifactFile (TargetPlatformBaseImpl.java:128)