new Addon and Maven repository

Hi all,

I managed to finish my first Vaadin addon and uploaded it to the addon-repository. The addon was created using the vaadin-addon-archetype and I supposed the addon would be available as Mavend dependency.

But it isn’t, only the jar file can be downloaded.

How can the addon provided as Maven dependency?

Regards,
Christoph

it should be totally automatic and always on. My guess is that when you have packaged it as a zip, the maven part doesn’t know how to serve it. Maybe you could re-release it as a jar and point to the manual in ‘related links’?

This is just my best guess.

The add-on JAR is what should contain all the necessary files to use the add-on.

If you upload an add-on packaged as a ZIP to the directory, if I remember correctly, the main add-on JAR as well as -sources.jar and -javadoc.jar (from the same location, if they exist) are published to the Maven repository, other files are not. The main add-on JAR should contain any client side sources for widgetset compilation, though.

What else would you want to see via Maven?

I guess it is a question to get anything of the add-on to maven, as there
is no ‘maven pom’ link in the directory
.

Hi Jens and Henri,

thanks for your replies. Jens is correct, I meant the missing maven pom link in the directory.

As I said I used the assembly goal to create the ZIP file I uploaded. The ZIP seems to be correct, the addon, the sources and the manual are included.

Currently I have no changes and it seems there is no possibility to upload the single JAR files to the existing version 0.0.1.

How can I figure out what went wrong uploading the ZIP file? I’m on a Windows 7 64Bit box using Java 1.7.0_03 64Bit and Maven 3.0.3. Maybe some file encoding problem? Or too long filenames (or some with blanks in it) which breaks the ZIP file handling on the server?

Regards,
Christoph

I asked an administrator to take a look at the logs in case there is something there that would explain this.
The person who knows the replication from Directory to Maven best is unfortunately on vacation.

Directory should be able to automatically extract the JAR from a ZIP and publish it in Maven provided that file names of the ZIP and JAR match and all metadata in the manifests is correct.

Another possibility: maybe the replication has been interrupted by a server reboot or something like that (several changes on the website recently) and left in a state where Directory thinks it is done but something is still missing.

I did some quick checks on behalf of Directory admins and found that the publishing to Maven repository failed because the location of the actual add-on JAR could not be determined within the ZIP archive.

Most likely attribute
Vaadin-Addon
is missing in ZIP manifest, see the specification in
http://dev.vaadin.com/wiki/VaadinAddon

Hi Mikael,

thanks for your help.

My original MANIFEST.MF was empty, I managed to add some necessary settings (GIT repository is updated) but it seems there is still something missing in the created ZIP. Maybe I will have a look at the complete Addon-Maven documentation this weekend but probably I will wait until the JAR-ZIP-Maven master is back from vacation :wink:

Regards,
Christoph

Hi everybody,

today I tried to deploy a new Vaadin addon and there seems to be again no deployment into your Maven repository.

The sourcecode for my Addon is available in https://bitbucket.org/flexguse/springmvp-addon/src. I used Maven 3 to create the Addon-Zip, hat a look at http://dev.vaadin.com/wiki/VaadinAddon and at a first glance my Addon-Zip seems to be correctly created.

Can you please have a look at my addon and why it is not deployed in your Maven repository? The Addon has lots of dependencies and very hard to use without Maven.

Thank you in advance,
Christoph

Hi Christoph,

I just looked at the logs and it seems that your
MANIFEST.MF
in the zip package is missing the
Vaadin-Addon
attribute (see
http://dev.vaadin.com/wiki/VaadinAddon
). This is required to identify the add-on JAR file inside the zip.

To clarify, let me use my own
Clara add-on
as an example. The contents of the zip package is as follows:



$ tree

.
├── META-INF
│ └── MANIFEST.MF
├── clara-0.6.0-javadoc.jar
├── clara-0.6.0-sources.jar
└── clara-0.6.0.jar

And the
META-INF/MANIFEST.MF
file identifies the actual add-on JAR using the
Vaadin-Addon
attribute like this:



$ cat META-INF/MANIFEST.MF

Manifest-Version: 1.0
Implementation-Title: Clara
Implementation-Version: 0.6.0
Vaadin-Addon: clara-0.6.0.jar
Vaadin-Package-Version: 1

Hopefully this helps. Just let me know if you have further questions.

  • Teemu

Hi Teemu,

thanks for your reply. I didn’t read the Vaadin Addon specification carefully enough, the Manifest is incomplete and the addon-pom is not copied to into the ZIP file. I am working on that.

Another question: I used the addon archetype for my addon, which generates a structure like this:

addon

  • addon
  • demo
  • documentation
  • parent

The parent project is set as parent in addon, demo and documentation. I used the parent-pom to use dependency management which means in the addon-pom there are no version numbers for the dependencies.

If I put the addon-pom into the addon-zip, then the pom information is incomplete.

I suppose the incomplete addon-pom in the addon-zip breaks your automatic deployment process?

Regards,
Christoph

Hi Teemu,

it worked! My addon is in your Maven repository :slight_smile: Thanks a lot!

Is there any possibility to put Maven archetypes into your Maven repository?

Regards,
Christoph

I’m afraid the directory doesn’t support publishing Maven archetypes.

There is much to improve in the existing Vaadin archetypes. If you want to contribute an archetype or improve the existing ones, you can
sign a contributor agreement
and let us publish the archetype as an official com.vaadin archetype (under the Apache 2.0 license, with you as the original author in the metadata). Alternatively, anybody is of course free to develop and publish archetypes separately, under their own name, although the ones from com.vaadin are probably seen by many more users.

Also smaller patches or tickets with detailed suggestions are welcome.