Noteworthy

  • All our parent poms have a new groupID and artifactID. See list below. We’re trying to move away from overcrowding the info.magnolia namespace, so this is one big step.
    • Migration note: if your project’s own pom does not have a groupID, you will have to add one !
    • magnolia-parent-pom-ce and magnolia-parent-pom-community-module merged
    • magnolia-parent-pom-abstract renamed to magnolia-parent-pom-base
    • plugins and build resources also renamed. Some properties were renamed accordingly:
      • <magnoliaBuildToolsArtifactId> property renamed to <magnoliaBuildResourcesArtifactId>
      • <magnoliaBuildToolsVersion> renamed to <magnoliaBuildResourcesVersion>
      • If your project was referring to any of these, make sure you adapt to the new groupId/artifactId. Versions are specified in the parent poms, so you should not have to. All plugins are specified and used by the parent pom, so you most likely don't have to do anything, except for this plugin that’s been used in some of our builds. See below.
    • magnolia-build-tools-resources was renamed to magnolia-build-resources, and the folders and resources in its artifacts were renamed accordingly. Consequently, references to these must be corrected. This is likely the case if you have a custom assembly. See example below.

  • We now require Maven 3+ to build, and specifically 3.2.3 for releasing
    • Consequently, pretty much all plugins were updated (We typically log every single plugin update individually for pom updates, but in this case, a bunch of updates went into BUILD-165)
    • Consequently, we also enforce specifying every plugin’s version in your projects.
  • Staging
    • We now support Nexus’ staging feature; they’re enabled by default when releasing projects with magnolia-parent-pom-community or magnolia-parent-pom-enterprise
    • You need to update your settings.xml ! (changes the mirror settings, and adds credentials for the staging repositories)
  • Even without staging, the deploy plugin is now configured to “deploy at end”, which means all your project’s artifacts will be uploaded together at the end of a succesfull build (which should mean no more half-complete releases)
  • Likewise, the install plugin is now configured to “install at end". This means that a reactor build failing halfway will result in absolutely no artifacts being copied to your local Maven repository.
  • Migrated from SVN to Git , merged into a single repository, restructured. Worked with -pl, -am and -amd Maven flags to 
  • Purge profile: mvn -P purge-magnolia-deps clean
    • Purges current project and its Magnolia-dependencies from the local maven repository
  • Site : slight modifications of the template and reports, added GA. (Controllable through the  <googleAnalyticsAccountId> property)
  • Use SupplementalModel mechanism to fix incorrect information in third-party dependency POMs; generated NOTICE.txt files should now be more accurate.

Snippets for new parent poms

<parent>
  <groupId>info.magnolia.maven.poms</groupId>
  <artifactId>magnolia-parent-pom-community</artifactId>
  <version>30</version>
</parent>
<parent>
  <groupId>info.magnolia.maven.poms-enterprise</groupId>
  <artifactId>magnolia-parent-pom-enterprise</artifactId>
  <version>30</version>
</parent>
<parent>
  <groupId>info.magnolia.maven.poms-forge</groupId>
  <artifactId>magnolia-parent-pom-forge</artifactId>
  <version>30</version>
</parent>
<parent>
  <groupId>info.magnolia.maven.poms-internal</groupId>
  <artifactId>magnolia-parent-pom-internal</artifactId>
  <version>30</version>
</parent>
<parent>
  <groupId>info.magnolia.maven.poms-project</groupId>
  <artifactId>magnolia-parent-pom-project</artifactId>
  <version>30</version>
</parent>

Build-resources have been renamed

To be consistent with the artifact renames, we also renamed the folder into which the remote-resources of magnolia-build-resources are extracted. (the artifact was magnolia-build-tools and the output folder was magnolia-build-tools-resources, now both are magnolia-build-resources.

If you have a custom assembly, you're maybe referring to target/magnolia-build-tools-resources and you will now need to refer to target/magnolia-build-resources. Example diff:

diff --git a/magnolia-enterprise-bundle/src/release/tomcat-bundle.xml b/magnolia-enterprise-bundle/src/release/tomcat-bundle.xml
index 8f39be5..5d4270f 100644
--- a/magnolia-enterprise-bundle/src/release/tomcat-bundle.xml
+++ b/magnolia-enterprise-bundle/src/release/tomcat-bundle.xml
@@ -68,7 +68,7 @@
       <directoryMode>755</directoryMode>
     </fileSet>
     <fileSet>
-      <directory>target/magnolia-build-tools-resources</directory>
+      <directory>target/magnolia-build-resources</directory>
       <outputDirectory></outputDirectory>
       <!-- filtering here is probably redundant -->
       <filtered>true</filtered>

Coordinates for other build resources and plugins

info.magnolia.build.resources:magnolia-build-resources-mna-licensed:1.6
info.magnolia.build.resources:magnolia-build-resources-dual-licensed:1.6
info.magnolia.build.resources:magnolia-build-resources-cpal-licensed:1.6
info.magnolia.build.resources:magnolia-build-resources-mit-licensed:1.6
info.magnolia.build.resources:magnolia-build-resources-generic-licensed:1.6
info.magnolia.maven.assemblies:magnolia-maven-bundle-assemblies:1.3.1
info.magnolia.maven.plugins:magnolia-bundle-maven-plugin:1.1.1
info.magnolia.maven.plugins:magnolia-setproperty-maven-plugin1.2.1
info.magnolia.maven.siteskin:magnolia-maven-site-skin:1.3

Likely candidate for change in some builds:

This

<plugin>
  <groupId>info.magnolia</groupId>
  <artifactId>maven-bundle-plugin</artifactId>
  <version>1.0.4</version>
</plugin>

should now be

<plugin>
  <groupId>info.magnolia.maven.plugins</groupId>
  <artifactId>magnolia-bundle-maven-plugin</artifactId>
</plugin>
  • No labels