Gradle Plugins Version 1.8

LabKey Support Forum
Gradle Plugins Version 1.8 Susan Hert  2019-10-17 14:45
Status: Closed
 

As of r64631 in trunk, the gradlePluginsVersion has been updated to v1.8. This version brings some exciting (to a build-geek) changes, including:

  • Removal of the schemas jar for all modules (the schemas classes are now compiled into the implementation jar for each module that has them)
  • Renaming of the jsp jar files (to remove the classifiers)

Because of these jar changes, once you pull in this change, you will want to do a cleanBuild. Without this, you'll have stale schema jars in your build directory and you will likely end up with two copies of some of the JSP jars, which could make for confusing behavior.

With this plugin version and going forward with LabKey 19.3, we will also be publishing the artifacts of our builds in Artifactory a little differently. Namely:

  • We will publish the api jars under the group org.labkey.api (e.g., you can reference the core api jar file as org.labkey.api:core:19.3-SNAPSHOT)
  • We will publish the .module files under the group org.labkey.module (e.g., you can reference the core module file org.labkey.module:core:19.3-SNAPSHOT@module. The "@module" is necessary because the extension of that file is .module instead of .jar).

You shouldn't need to make any changes in your current build as a result of this unless you had explicitly been referencing artifacts using 'org.labkey' as the group instead of using the BuildUtils.addLabKeyDependency method.

The .module files have pom files published with them that declare dependencies on other modules, which allows for an easier mechanism for getting all the modules required for a valid server deployment. We are, however, still auditing these dependency declarations to make sure they capture everything they should and there will likely be refinements of this in the future.

To enable the publishing of the module dependencies, the use of the property moduleDependencies in the module.properties file is now deprecated in favor of declaring dependencies within a module's build.gradle file. See more information on how to do this here.

If you have any questions or problems, please let us know.

Susan