| ----- |
| Converting gbean.org from m1 to m2 |
| ----- |
| Jason van Zyl |
| ----- |
| |
| What follows is a little description of the the process that I go through |
| when converting an m1 project to an m2 project. In this example I'm going to |
| use gbean.org, Dain Sundstrom's [yada yada yada] ... |
| |
| Usually when I start looking at converting a project from m1 to m2 I take a |
| quick look at the directory structure because the standard layout we |
| decided upon for m2 is slightly different from layout most common in m1 |
| and it's understandable that folks might not want to change their layout. |
| I talked it over with Dain and because SVN makes it so easy to shuffle things |
| around he decided it would be ok to use the m2 standard. Using the m2 |
| standards does make things easier because the standards for m2 are |
| encapsulated in the Super POM that all m2 project inherit from. You can sort of |
| think of the Super POM in Maven as the analog of <<<java.lang.Object>>> in Java. |
| |
| - pitfalls in using the default structure |
| |
| - resources in the same directories as sources |
| |
| - some things we don't have in m2 right now are a clover plugin |
| |
| Updating the POM |
| |
| - change pomVersion to modelVersion and 3 to 4.0.0 |
| |
| - the id element is deprecated an calculated in m2, so i changed the |
| id element to artifactId |
| |
| - currentVersion to version |
| |
| - change the version from 1.0-SNAPSHOT to 1.0-alpha-1-SNAPSHOT |
| |
| - package element no longer exists, it will be the job of plugins |
| |
| - remove the siteAddress and siteDirectory elemement and replace it |
| with the distributionManagement element |
| |
| - removed the entire build element because we are using m2 standards |
| which are encapsulated in the Super POM. |
| |
| - remove the reports for now as we don't have many |
| |
| Annoyances |
| |
| The single biggest annoyance with converting from m1 to m2 is the fact that |
| often times people have not made POMs for artifacts we have entered into the |
| repository. With m2 the build will not work if artifacts do not have the |
| accompanying POMs. |
| |