Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade/replace deegree-maven-plugin #963

Closed
Tracked by #1120
tfr42 opened this issue Mar 28, 2019 · 5 comments
Closed
Tracked by #1120

Upgrade/replace deegree-maven-plugin #963

tfr42 opened this issue Mar 28, 2019 · 5 comments
Labels
enhancement enhancement or improvement TMC discussion to be discussed by technical management committee members

Comments

@tfr42
Copy link
Member

tfr42 commented Mar 28, 2019

The deegree maven plugin generates a log4j2.xml configuration file for plugin phase assemble-log4j and not a log4j.properties file as expected.

@tfr42 tfr42 added enhancement enhancement or improvement TMC discussion to be discussed by technical management committee members labels Mar 28, 2019
@tfr42
Copy link
Member Author

tfr42 commented Nov 27, 2020

The maintenance of the deegree-maven-plugin has ended. The code base has not received any significant changes since years and no actual committer is active. The TMC members can not maintain the code base. Thus the TMC has the motion to end the usage of the plugin in the build process of deegree and look for migration strategy. Because the plugin is crucial for the build process and has several shortcomings which already had cracked the build process of deegree.

The plugin has 15 goals:

mvn help:describe -Dplugin=org.deegree:deegree-maven-plugin -Ddetail

[INFO] --- maven-help-plugin:3.2.0:describe (default-cli) @ deegree-workspaces ---
[INFO] org.deegree:deegree-maven-plugin:2.0.2

Name: deegree-maven-plugin
Description: Maven plugin for tasks related to building deegree
Group Id: org.deegree
Artifact Id: deegree-maven-plugin
Version: 2.0.2
Goal Prefix: deegree

This plugin has 15 goals:

deegree:assemble-console
  Description: (no description available)
  Implementation: org.deegree.maven.ConsoleMojo
  Language: java
  Bound to phase: generate-resources
  Before this goal executes, it will call:
    Single goal: 'assemble-console'
    Phase: 'generate-resources'

  Available parameters:

    localRepository (Default: ${localRepository})
      (no description available)

deegree:assemble-log4j
  Description: (no description available)
  Implementation: org.deegree.maven.Log4jMojo
  Language: java
  Bound to phase: generate-resources
  Before this goal executes, it will call:
    Single goal: 'assemble-log4j'
    Phase: 'generate-resources'

  Available parameters:

    deegreeLoggingLevel (Default: INFO)
      Required: true
      (no description available)

    localRepository (Default: ${localRepository})
      (no description available)

    rootLoggingLevel (Default: ERROR)
      Required: true
      (no description available)

    width (Default: 120)
      Required: true
      (no description available)

deegree:attach-workspace
  Description: (no description available)
  Implementation: org.deegree.maven.WorkspaceMojo
  Language: java
  Bound to phase: package
  Before this goal executes, it will call:
    Single goal: 'attach-workspace'
    Phase: 'package'

  Available parameters:

    localRepository (Default: ${localRepository})
      (no description available)

    transitiveJarDependencies (Default: false)
      (no description available)

deegree:copy
  Description: (no description available)
  Implementation: org.deegree.maven.CopyMojo
  Language: java
  Bound to phase: generate-resources
  Before this goal executes, it will call:
    Single goal: 'copy'
    Phase: 'generate-resources'

  Available parameters:

    project (Default: ${project})
      (no description available)

deegree:create-links
  Description: (no description available)
  Implementation: org.deegree.maven.EclipseProjectLinker
  Language: java
  Before this goal executes, it will call:
    Single goal: 'create-links'

  Available parameters:

deegree:eclipse
  Description: (no description available)
  Implementation: org.deegree.maven.EclipseMojo
  Language: java
  Before this goal executes, it will call:
    Single goal: 'eclipse'

  Available parameters:

deegree:generate-buildinfo
  Description: (no description available)
  Implementation: org.deegree.maven.BuildnumberMojo
  Language: java
  Bound to phase: generate-resources
  Before this goal executes, it will call:
    Single goal: 'generate-buildinfo'
    Phase: 'generate-resources'

  Available parameters:

deegree:generate-jaxb-catalog
  Description: (no description available)
  Implementation: org.deegree.maven.XMLCatalogueMojo
  Language: java
  Bound to phase: generate-resources
  Before this goal executes, it will call:
    Single goal: 'generate-jaxb-catalog'
    Phase: 'generate-resources'

  Available parameters:

    localRepository (Default: ${localRepository})
      (no description available)

deegree:generate-modules-site
  Description: (no description available)
  Note: This goal should be used as a Maven report.
  Implementation: org.deegree.maven.ModuleListSiteMojo
  Language: java
  Bound to phase: site
  Before this goal executes, it will call:
    Single goal: 'generate-modules-site'

  Available parameters:

deegree:generate-portnumber
  Description: (no description available)
  Implementation: org.deegree.maven.PortnumberMojo
  Language: java
  Bound to phase: initialize
  Before this goal executes, it will call:
    Single goal: 'generate-portnumber'
    Phase: 'initialize'

  Available parameters:

deegree:list-modules-wiki
  Description: (no description available)
  Implementation: org.deegree.maven.ModuleListMojo
  Language: java
  Before this goal executes, it will call:
    Single goal: 'list-modules-wiki'

  Available parameters:

deegree:setup-eclipse-working-sets
  Description: Mojo to automatically setup deegree working sets and to move
    projects into working sets.
  Implementation: org.deegree.maven.EclipseWorkingSetMojo
  Language: java
  Before this goal executes, it will call:
    Single goal: 'setup-eclipse-working-sets'

  Available parameters:

deegree:test-services
  Description: (no description available)
  Implementation: org.deegree.maven.ServiceIntegrationTestMojo
  Language: java
  Bound to phase: integration-test
  Before this goal executes, it will call:
    Single goal: 'test-services'
    Phase: 'integration-test'

  Available parameters:

    testCapabilities (Default: true)
      (no description available)

    testLayers (Default: true)
      (no description available)

    testRequests (Default: true)
      (no description available)

    workspace (Default:
    ${project.basedir}/src/main/webapp/WEB-INF/workspace)
      (no description available)

deegree:test-workspaces
  Description: (no description available)
  Implementation: org.deegree.maven.WorkspaceITMojo
  Language: java
  Bound to phase: integration-test
  Before this goal executes, it will call:
    Single goal: 'test-workspaces'
    Phase: 'integration-test'

  Available parameters:

deegree:workspace-inplace
  Description: (no description available)
  Implementation: org.deegree.maven.WorkspaceInplaceMojo
  Language: java
  Bound to phase: generate-resources
  Before this goal executes, it will call:
    Single goal: 'workspace-inplace'
    Phase: 'generate-resources'

  Available parameters:

    localRepository (Default: ${localRepository})
      (no description available)

@tfr42 tfr42 changed the title Upgrade deegree-maven-plugin Upgrade/replace deegree-maven-plugin Jan 29, 2021
@tfr42
Copy link
Member Author

tfr42 commented Mar 24, 2021

deegree:generate-buildinfo is used by build info, see #432

@stephanr
Copy link
Member

deegree:generate-buildinfo is used by build info, see #432

This raises the question of whether external processes or downstream CI jobs access the buildinfo.properties from the war.
If this is not the case, the metadata for the WAR files could also be written to the MANIFEST.MF, analog to #432

The only known place in deegree [2] itself, the ModuleInfo [3], has already been patched with #432.

[1] https://maven.apache.org/plugins/maven-war-plugin/war-mojo.html#archive
[2] https://github.com/deegree/deegree3/search?q=buildinfo&type=code
[3] https://github.com/deegree/deegree3/blob/master/deegree-core/deegree-core-workspace/src/main/java/org/deegree/workspace/standard/ModuleInfo.java

@tfr42
Copy link
Member Author

tfr42 commented Aug 5, 2021

Maven plugin to get git describe info for MANIFEST.MF - https://github.com/lukegb/GitDescribe-Maven-Plugin

tfr42 added a commit to lat-lon/deegree3 that referenced this issue Aug 9, 2021
lgoltz added a commit to lat-lon/deegree3 that referenced this issue Aug 10, 2021
lgoltz added a commit to lat-lon/deegree3 that referenced this issue Aug 10, 2021
lgoltz added a commit to lat-lon/deegree3 that referenced this issue Aug 10, 2021
lgoltz added a commit to lat-lon/deegree3 that referenced this issue Aug 10, 2021
lgoltz added a commit to lat-lon/deegree3 that referenced this issue Aug 11, 2021
lgoltz added a commit to lat-lon/deegree3 that referenced this issue Aug 12, 2021
lgoltz added a commit to lat-lon/deegree3 that referenced this issue Aug 12, 2021
@tfr42
Copy link
Member Author

tfr42 commented Aug 16, 2021

PR #1169 has been merged. Release version 3.4.17 has been build without the plugin. The average build time has dropped from 25-28 min to 15-20 min. The project for the plugin itself has been archived (https://github.com/deegree/deegree-maven-plugin).
There are still some open issues such as #1173. A bug fix for this issue is under preparation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement enhancement or improvement TMC discussion to be discussed by technical management committee members
Projects
None yet
Development

No branches or pull requests

2 participants