Issue Type: New Feature New Feature
Affects Versions: 3.7
Assignee: Jesse Glick
Created: 18/Jul/12 7:31 AM
Description:

Using the Maven plugin to create a plugin acceptable to http://plugins.netbeans.org/ is surprisingly tricky - the single module archetype is not suitable for reproducible builds, the application archetype is oriented towards standalone applications rather than IDE plugins, and Plugin Portal has various mandatory requirements. I think that this is a significant enough use case that it deserves a dedicated archetype.

Basic structure should be similar to application archetype, i.e. use a parent POM, module (plugin) project, and nbm-application project for testing and aggregation. The branding project can be omitted, and the default dependencies should include at least the ide cluster and perhaps others such as java and nb. The setup as produced by the archetype would assume a single module plugin; if you wanted a multimodule plugin (kit module plus content modules) this might be a variant archetype or you might just set it up manually (taking care to mark all but one "invisible" to Plugin Manager).

Specific things that would need to be done differently than what current archetypes set up:

1. You must have a defined license. Currently this implies editing module.xml and creating a license.txt, but that is irritating to maintain. MNBMODULE-177 would be better, in which case the archetype ought to define a <license> by default to get you started, perhaps using the CDDL+GPL used by NetBeans; at least you can see what you need to change if you want a different license.

2. (Applicable also to general module template) Localizing Bundle.properties in src/main/resources seems to cause trouble in conjunction with CoS mode if you use @Messages, as most file templates now do. Safer to use @Messages on package-info.java.

3. A OpenIDE-Module-Display-Category is really important for decent display in PM. Probably ought to be requested as part of archetype properties, or some tolerable default value provided; the groupId looks bad.

4. POM of plugin project must define <url> or PP will reject the NBM as having no home page. (Setting URL in parent POM does not work - Maven tries to append the relative source path of the plugin project.) Probably again need to request in archetype properties.

5. Parent POM should define <organization>, else again PP will reject the NBM as having no author. Again, needed in archetype properties.

6. -Prelease build of project should create NBMs just for modules; no need to create JNLP or installers, and ought to tell plugin not to create an update site, nor to include NBMs of platform. Ideally the plugin when configured this way would automatically detect whether there is just one module or more than one, and create *.nbm or *.zip accordingly, ready for upload to PP. (BTW http://wiki.netbeans.org/MavenNBM4#Fix_repository_generation_and_usage suggests making it possible to produce an update site directly from released Maven artifacts, which would make this easier.)

Project: Maven NetBeans Module Plugin
Priority: Major Major
Reporter: Jesse Glick
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators.
For more information on JIRA, see: http://www.atlassian.com/software/jira
--------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email

Reply via email to