Duplicate entry message after calling Prepare Plugin Module ... for Deployment [SOLVED]

Hi all,

I have a plugin which was developped mainly under IJ12 but also under IJ13 with a minor update. The code has not changed for a long time.

Today I ran in something new with IJ13.1.1 (13.1 had the problem too) when invoking "Prepare... from Deployment". Call my plugin "abc" for example. A message pops up reporting "Duplicate entry in abc-jps-plugin/lib/abc-jps-plugin.jar"

The abc-jps-plugin.zip file gets created but does only contain a lib dir and none of the plugins' class files. And the single jar in the lib dir also seems too small to me.

Anyway ran into something similar already? Do these symptoms ring a bell to someone. Many thanks in advance.

Regards,

Johan

 

0
9 comments
Avatar
Permanently deleted user

I've installed 13.0.3 and have the same problem there too.

Is there a place where one can increase the log level for this operation? I could not find any output so far that could help me understand the problem.

Regards,

Johan

0
Avatar
Permanently deleted user

Hi again,

Still much looking forward to a solution since I can't publish my plugin now :(

I forgot to mention previously that I can run the plugin in the "sandbox" IJ instance without problem. It is the creation of the zip that seems broken all the sudden :(

0
Avatar
Permanently deleted user

Well, given the lack of ideas I've tried the following: my code uses asm and the IC-JDK comes with an older version of asm. So I've:

  1. repackaged the asm code with a unique package name of avoid the conflict
  2. refactored my code to use the new package name
  3. Reodered the module dependencies putting the IC-JDK higher up again

Well still no progress. Same error with very little info. I attach a screenshot of 'all' the info one gets.

Does anyone know WHERE in the code (a linkt to github or upsource) the "preparing plugin module" happens so I can have a look there to understand what happens


Attachment(s):
ic-13_1_1_plugin_problem.bmp
0
Avatar
Permanently deleted user

Update: ?:|

- from the code it seems exception should come from ZipOutputStream, it's not a IJ check or something
- if I change the module name from abc-jps-plugin the something else the IT WORKS!!!! ?:|


Nobody any ideas? Any help would be much appreciated

Johan

0
Avatar
Permanently deleted user

Hmmm actually this seems to be the next issue again: http://youtrack.jetbrains.com/issue/IDEA-34779

0
Avatar
Permanently deleted user

Bump  
3 weeks, still no input   :(

0
Avatar
Permanently deleted user

With Nikolay Chashnikov's help the problem got resolved! Many many thanks to Nikolay!

I had put the plugin jar in the <compileServer.plugin classpath= /> within the plugin.xml. Stupid mistake on my part :(

All well, life goes on ;)

Johan

0
Avatar
Permanently deleted user

Any chance you can elaborate on what that might mean?

0
Avatar
Permanently deleted user

I'll try my best. It's been a while and I had to look at the setup again because I forgot the actual details.

In my plugin A I make use of a "applicationService'" (to be mentioned in the plugin.xml). In my case a subclass of  JpsGlobalExtensionSerializer etc. The implementation resided inside the same module as the rest of the my plugin. Problem was I did not load at runtime (using the jdk's ServiceLoader). But I got it to work by putting my own plugin A classpath (the <compileServer.plugin classpath=....> in the plugin.xml that is). Important detail this worked when I ran the "embedded" IJ instance to debug my plugin. I ran into trouble when I wanted to make the zip (Prepare Plug...).

So to make the zip for plugin A it needs plugin A to put it in the lib dir. All because of the <compileServer.plugin classpath=pluginA.jar....>  construction :(

I had to make a new module within my plugin project and moved my "applicationService" implementation there. Removed plugin A from "<compileServer.plugin classpath=... >" and added the module for my service to it instead.

I hope helps, otherwise just say so.

Johan

0

Please sign in to leave a comment.