Plugin Details

This report describes goals, parameters details, requirements and sample usage of this plugin.

Goals

Goals available for this plugin:

Goal Description
tentackle:analyze Generates code and meta-information prior to wurbeling and compiling the sources.

Processes all annotations annotated with @Analyze, such as @Service.
Depending on the handler of each annotation, the results are either written as service descriptors to servicesDir, as analyze info to analyzeDir, or placed on heap to be picked up by the wurblets.

tentackle:beaninfo Creates a manifest that marks all classes with a BeanInfo as JavaBeans.

For each XxxBeanInfo.java found in the sources, a matching Xxx.java must exist, and an entry Name: path/to/Xxx.class with Java-Bean: True is added to <manifestDirectory>/META-INF/MANIFEST.MF. Classes whose simple name contains Abstract are skipped, because their BeanInfo only provides settings shared by the concrete beans.

The manifest is not added to the artifact automatically. Use the manifestFile option of the maven-jar-plugin's archive configuration to merge it.

tentackle:help Display help information on tentackle-maven-plugin.
Call mvn tentackle:help -Ddetail=true -Dgoal=<goal-name> to display parameter details.
tentackle:plugin-versions Mojo to determine the versions of all maven plugins used in the current project and its modules.
It logs the versions in XML-format ready to use within the properties section of a pom file. The property names are of the form version.groupIdInCamelCase.artifactIdInCamelCase. Missing versions and the meta versions RELEASE and LATEST are resolved against the plugin repositories.

Example:

  mvn tentackle:plugin-versions
  ...
  [INFO] 
  [INFO] --- tentackle-maven-plugin:13.0-SNAPSHOT:plugin-versions (default-cli) @ admin-parent ---
  [INFO]
  <!-- plugins of project 'admin-parent' -->
  <version.orgApacheMavenPlugins.mavenCleanPlugin>3.1.0</version.orgApacheMavenPlugins.mavenCleanPlugin>
  <version.orgApacheMavenPlugins.mavenCompilerPlugin>3.8.1</version.orgApacheMavenPlugins.mavenCompilerPlugin>
  <version.orgApacheMavenPlugins.mavenDependencyPlugin>3.1.1</version.orgApacheMavenPlugins.mavenDependencyPlugin>
  <version.orgApacheMavenPlugins.mavenDeployPlugin>2.8.2</version.orgApacheMavenPlugins.mavenDeployPlugin>
  <version.orgApacheMavenPlugins.mavenEnforcerPlugin>3.0.0-M1</version.orgApacheMavenPlugins.mavenEnforcerPlugin>
  <version.orgApacheMavenPlugins.mavenInstallPlugin>2.5.2</version.orgApacheMavenPlugins.mavenInstallPlugin>
  <version.orgApacheMavenPlugins.mavenJarPlugin>3.1.2</version.orgApacheMavenPlugins.mavenJarPlugin>
  <version.orgApacheMavenPlugins.mavenJavadocPlugin>3.1.1</version.orgApacheMavenPlugins.mavenJavadocPlugin>
  <version.orgApacheMavenPlugins.mavenResourcesPlugin>3.1.0</version.orgApacheMavenPlugins.mavenResourcesPlugin>
  <version.orgApacheMavenPlugins.mavenSitePlugin>3.8.2</version.orgApacheMavenPlugins.mavenSitePlugin>
  ...
Notice: the whole project must have been successfully built before invoking this goal.
tentackle:properties Generates maven properties from other maven properties.

Example:

  <propertyDescriptors>
    <propertyDescriptor>
     <input>${dbPasswd}</input>
     <converter>@org.tentackle.common.Cryptor</converter>
     <property>encryptedPasswd</property>
    </propertyDescriptor>
  </propertyDescriptors>

The converter is the FQCN of a class implementing Function<String,String> with a public no-args constructor. Because it must be in the classpath of the tentackle-maven-plugin, its artifact must be placed within the plugin's <dependencies>.
If the FQCN starts with an @, the converter is looked up via META-INF/services.

The generated properties are visible to all plugins executed later in the build of the same module, for example to resource filtering, but not to values of the pom that have already been interpolated.

Important: the converters must be stateless because one instance per converter is shared by all property descriptors of an execution!

tentackle:test-analyze Generates code and meta-information prior to wurbeling and compiling the test sources.

Same as the analyze goal, but for the test sources and the test classpath. The parameters have their own user properties, so that main and test analysis can be configured independently.

tentackle:versions Mojo to determine the versions of all 3rd-party dependencies of the current project.
It logs the versions in XML-format ready to use within the properties section of a pom file. The property names are of the form version.groupIdInCamelCase.artifactIdInCamelCase.
The artifacts of the reactor modules are excluded. If no dependency scope is given, the dependencies of all scopes are listed.

Example:

  mvn -Dscope=compile tentackle:versions
  ...
  [INFO] 
  [INFO] --- tentackle-maven-plugin:11.5.1.0:versions (default-cli) @ myapplic-parent ---
  [INFO]
  <!-- 3rd-party dependencies of project 'myapplic-parent' for scope 'compile' -->
  <version.orgCodehausGroovy.groovy>2.5.8</version.orgCodehausGroovy.groovy>
  <version.orgOpenjfx.javafxBase>13.0.1</version.orgOpenjfx.javafxBase>
  <version.orgOpenjfx.javafxControls>13.0.1</version.orgOpenjfx.javafxControls>
  <version.orgOpenjfx.javafxFxml>13.0.1</version.orgOpenjfx.javafxFxml>
  <version.orgOpenjfx.javafxGraphics>13.0.1</version.orgOpenjfx.javafxGraphics>
  <version.orgOpenjfx.javafxMedia>13.0.1</version.orgOpenjfx.javafxMedia>
  <version.orgOpenjfx.javafxWeb>13.0.1</version.orgOpenjfx.javafxWeb>
  <version.orgSlf4j.slf4jApi>1.7.28</version.orgSlf4j.slf4jApi>
  <version.orgTentackle.tentackleCommon>11.5.1.0</version.orgTentackle.tentackleCommon>
  <version.orgTentackle.tentackleCore>11.5.1.0</version.orgTentackle.tentackleCore>
  <version.orgTentackle.tentackleDatabase>11.5.1.0</version.orgTentackle.tentackleDatabase>
  <version.orgTentackle.tentackleDomain>11.5.1.0</version.orgTentackle.tentackleDomain>
  <version.orgTentackle.tentackleFx>11.5.1.0</version.orgTentackle.tentackleFx>
  <version.orgTentackle.tentackleFxRdc>11.5.1.0</version.orgTentackle.tentackleFxRdc>
  <version.orgTentackle.tentackleFxRdcPoi>11.5.1.0</version.orgTentackle.tentackleFxRdcPoi>
  <version.orgTentackle.tentackleFxRdcUpdate>11.5.1.0</version.orgTentackle.tentackleFxRdcUpdate>
  <version.orgTentackle.tentackleI18n>11.5.1.0</version.orgTentackle.tentackleI18n>
  <version.orgTentackle.tentackleLogSlf4j>11.5.1.0</version.orgTentackle.tentackleLogSlf4j>
  <version.orgTentackle.tentacklePdo>11.5.1.0</version.orgTentackle.tentacklePdo>
  <version.orgTentackle.tentacklePersistence>11.5.1.0</version.orgTentackle.tentacklePersistence>
  <version.orgTentackle.tentackleScriptGroovy>11.5.1.0</version.orgTentackle.tentackleScriptGroovy>
  <version.orgTentackle.tentackleSession>11.5.1.0</version.orgTentackle.tentackleSession>
  <version.orgTentackle.tentackleSql>11.5.1.0</version.orgTentackle.tentackleSql>
  <version.orgTentackle.tentackleUpdate>11.5.1.0</version.orgTentackle.tentackleUpdate>
  ...
Notice: the whole project must have been successfully built before invoking this goal.

System Requirements

The following specifies the minimum requirements to run this Maven plugin:

Maven 3.9.10
JDK 25

System Requirements History

The following specifies the minimum requirements to run this Maven plugin for historical versions:

Plugin Version Maven JDK
from 25.17.0.0 to 25.20.1.0 - 25
from 21.15.0.0 to 21.16.4.0 - 21
from 17.8.0.0 to 17.14.0.6 - 17
from 11.2.3.0 to 11.7.4.1 - 11
from 8.2.2.0 to 8.3.0.5 - 8
2.2.0 - 11
from 2.0.4 to 2.1.6 - 8

Usage

You should specify the version in your project's plugin configuration:

<project>
  ...
  <build>
    <!-- To define the plugin version in your parent POM -->
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.tentackle</groupId>
          <artifactId>tentackle-maven-plugin</artifactId>
          <version>25.20.1.0</version>
        </plugin>
        ...
      </plugins>
    </pluginManagement>
    <!-- To use the plugin goals in your POM or parent POM -->
    <plugins>
      <plugin>
        <groupId>org.tentackle</groupId>
        <artifactId>tentackle-maven-plugin</artifactId>
      </plugin>
      ...
    </plugins>
  </build>
  ...
</project>

For more information, see "Guide to Configuring Plug-ins"