Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-46684

Break transitive dependencies on maven-integration-plugin

    Details

    • Epic Name:
      Break transitive dependencies on maven-integration-plugin
    • Similar Issues:

      Description

      We would like people to stop using https://wiki.jenkins.io/display/JENKINS/Maven+Project+Plugin but the user base is still growing (less quickly fortunately).

      I think one of the main contributors to this is that it is actually impossible today to not install that plugin. It's pulled in by basically the whole world.

      So for instance, even if it's not explicitly in the Jenkins 2 installation wizard list of plugins, it will always be installed transitively.

      Then, imagine a newcomer installing Jenkins for the first time for a try, using Maven and Java on a daily basis... Installed Jenkins, clicked "New Item", who is not going to click on "Maven Job"?...

      So if we ever to move forward and see the usage of this plugin decrease significantly, we need in my opinion to first work so that it is not automatically installed on every single Jenkins instance in the world...

        Attachments

          Activity

          Hide
          oleg_nenashev Oleg Nenashev added a comment -

          Baptiste Mathus I am pretty sure it just needs something like "descriptors:h.filterDescriptors(app, TopLevelItem.all())" in the New Item dialog (https://github.com/jenkinsci/jenkins/blob/master/core/src/main/resources/hudson/model/View/newJob.jelly) and in folders. So *technically* it is easy to do so. *non-technically* see my PM

          Show
          oleg_nenashev Oleg Nenashev added a comment - Baptiste Mathus I am pretty sure it just needs something like "descriptors:h.filterDescriptors(app, TopLevelItem.all())" in the New Item dialog ( https://github.com/jenkinsci/jenkins/blob/master/core/src/main/resources/hudson/model/View/newJob.jelly ) and in folders. So * technically * it is easy to do so. * non-technically * see my PM
          Hide
          jglick Jesse Glick added a comment -

          I got some PRs merged a few months back that break the deps from analysis-core-based plugins.

          Show
          jglick Jesse Glick added a comment - I got some PRs merged a few months back that break the deps from analysis-core -based plugins.
          Hide
          batmat Baptiste Mathus added a comment -
          #!/bin/groovy
          
           def slurper = new groovy.json.JsonSlurper()
           def result = slurper.parse(new File('update-center.json'))
          
          def pluginsUsingMaven = result.plugins.findAll { plugin ->
          
            return plugin.getValue().dependencies.any { dependency ->
              dependency.name == 'maven-plugin' && dependency.optional == false
            }
          }
          
          pluginsUsingMaven.collect { it.key }.sort().each { println it }
          

          CFLint
          accelerated-build-now-plugin
          analysis-collector
          analysis-core
          android-lint
          artifactory
          build-publisher
          build-requester
          campfire
          checkstyle
          codecover
          codescanner
          collabnet-automic-deploy
          collabnet-uc4-deploy
          conditional-buildstep
          cppncss
          cpptest
          custom-job-icon
          dashboard-view
          dependency-check-jenkins-plugin
          dependencyanalyzer
          deployed-on-column
          deployer-framework
          dry
          dry-run
          email-ext-recipients-column
          emma
          findbugs
          gitflow
          hp-application-automation-tools-plugin
          humbug
          javancss
          jenkins-multijob-plugin
          job-direct-mail
          m2release
          mail-watcher-plugin
          mantis
          maven-dependency-update-trigger
          maven-info
          maven-invoker-plugin
          maven-release-cascade
          maven-repo-cleaner
          metadata
          php
          pipeline-dependency-walker
          pmd
          promoted-builds
          publish-to-bitbucket
          release
          repository
          s3
          saltstack
          sauce-ondemand
          selenium-builder
          semantic-versioning-plugin
          shared-objects
          sonargraph-plugin
          sumologic-publisher
          tasks
          testabilityexplorer
          unleash
          vectorcast-coverage
          vectorcast-execution
          violation-columns
          violations
          warnings
          weblogic-deployer-plugin
          weibo
          whitesource
          xcp-ci

          Show
          batmat Baptiste Mathus added a comment - #!/bin/groovy def slurper = new groovy.json.JsonSlurper() def result = slurper.parse(new File('update-center.json')) def pluginsUsingMaven = result.plugins.findAll { plugin -> return plugin.getValue().dependencies.any { dependency -> dependency.name == 'maven-plugin' && dependency.optional == false } } pluginsUsingMaven.collect { it.key }.sort().each { println it } CFLint accelerated-build-now-plugin analysis-collector analysis-core android-lint artifactory build-publisher build-requester campfire checkstyle codecover codescanner collabnet-automic-deploy collabnet-uc4-deploy conditional-buildstep cppncss cpptest custom-job-icon dashboard-view dependency-check-jenkins-plugin dependencyanalyzer deployed-on-column deployer-framework dry dry-run email-ext-recipients-column emma findbugs gitflow hp-application-automation-tools-plugin humbug javancss jenkins-multijob-plugin job-direct-mail m2release mail-watcher-plugin mantis maven-dependency-update-trigger maven-info maven-invoker-plugin maven-release-cascade maven-repo-cleaner metadata php pipeline-dependency-walker pmd promoted-builds publish-to-bitbucket release repository s3 saltstack sauce-ondemand selenium-builder semantic-versioning-plugin shared-objects sonargraph-plugin sumologic-publisher tasks testabilityexplorer unleash vectorcast-coverage vectorcast-execution violation-columns violations warnings weblogic-deployer-plugin weibo whitesource xcp-ci
          Hide
          batmat Baptiste Mathus added a comment -

          So, status update: it did improve indeed. I just installed the suggested plugins on a fresh jenkins/jenkins:latest and didn't get maven-plugin installed. Same for latest LTS (2.107.2).

          Show
          batmat Baptiste Mathus added a comment - So, status update: it did improve indeed. I just installed the suggested plugins on a fresh jenkins/jenkins:latest and didn't get maven-plugin installed. Same for latest LTS (2.107.2).
          Hide
          batmat Baptiste Mathus added a comment -

          Situation improved. I will likely now just file targeted JIRAs against plugins still pulling this plugin in, if any.

          \o/

          Show
          batmat Baptiste Mathus added a comment - Situation improved. I will likely now just file targeted JIRAs against plugins still pulling this plugin in, if any. \o/

            People

            • Assignee:
              Unassigned
              Reporter:
              batmat Baptiste Mathus
            • Votes:
              2 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: