Giter Club home page Giter Club logo

dependency-update-maven-plugin's People

Contributors

bmarwell avatar dependabot[bot] avatar dzenzes avatar georgberky avatar helpermethod avatar khmarbaise avatar sparsick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

dependency-update-maven-plugin's Issues

[Bug] New Branch is not always created from master branch

When more than one dependency is updated in one Maven run, then the second updated branch is created from the first updated branch and so on (see also screenshot).

grafik

Expected result:

Every new branch is created from the master branch.

Require Maven as prerequisite

all official maven plugins now require Maven 3.6.3 as a minimum because of API stability and Maven EOL.

The current plugin requires 3.8.8, but this is not set as prerequisite

Dryrun appreciated

As a user of the plugin I would like to run the updates in a dry run mode (where the resulting branches are not pushed) in order to not bother my Git upstream repository (i.e., origin by default) with my tests and changes.

createDependencyArtifact…ope, dependency.optional) must not be null

Hi,

overview

The plugin fails to execute:

[ERROR] Failed to execute goal io.github.georgberky.maven.plugins.depsupdate:dependency-update-maven-plugin:0.8.0:update (default-cli) on project my-tool-submodule: Execution default-cli of goal io.github.georgberky.maven.plugins.depsupdate:dependency-update-maven-plugin:0.8.0:update failed: createDependencyArtifact…ope, dependency.optional) must not be null -> [Help 1]

other symptoms

I see a branch with the name dependency-update/my-orga-tool-toolname-null.
Since I have modules of my tool in dependencyManagement section, this might be the reason.

Stack trace

[INFO] --- dependency-update-maven-plugin:0.8.0:update (default-cli) @ my-tool-submodule ---
[DEBUG] Configuring mojo io.github.georgberky.maven.plugins.depsupdate:dependency-update-maven-plugin:0.8.0:update from plugin realm ClassRealm[plugin>io.github.georgberky.maven.plugins.depsupdate:dependency-update-maven-plugin:0.8.0, parent: java.net.URLClassLoader@937296d4]
[DEBUG] Configuring mojo 'io.github.georgberky.maven.plugins.depsupdate:dependency-update-maven-plugin:0.8.0:update' with basic configurator -->
[DEBUG]   (s) connectionType = connection
[DEBUG]   (s) connectionUrl = scm:git:https://github.com/orga/tool-name.git/my-tool-submodule
[DEBUG]   (s) developerConnectionUrl = scm:git:https://github.com/orga/tool-name.git/my-tool-submodule
[DEBUG]   (s) gitProvider = NATIVE
[DEBUG]   (s) localRepository =       id: local
      url: file://$HOME/.m2/repository/
   layout: default
snapshots: [enabled => true, update => always]
 releases: [enabled => true, update => always]
   blocked: false

[DEBUG]   (s) mavenProject = MavenProject: my.package.tool:my-tool-submodule:3.3.0-SNAPSHOT @ $HOME/Projects/git/orga/toolname/mavenmodule/pom.xml
[DEBUG]   (s) settings = org.apache.maven.execution.SettingsAdapter@df68a264
[DEBUG] -- end configuration --
[DEBUG] Searching for local_repo.maven-metadata-local_repo.xml.lastUpdated in resolution tracking file.
[DEBUG] Reading resolution-state from: $HOME/.m2/repository/my/package/tool/tool-root/resolver-status.properties
dependencyUpdates: Dependency {groupId=jakarta.ws.rs, artifactId=jakarta.ws.rs-api, version=2.1.5, type=jar}
dependencyUpdates: Dependency {groupId=org.yaml, artifactId=snakeyaml, version=1.25, type=jar}
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for My-Tool 3.3.0-SNAPSHOT:
[INFO] 
[INFO] My-Tool ............................................ SUCCESS [  0.462 s]
[INFO] DT :: Patch Test-App (war) ......................... FAILURE [  0.053 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.508 s
[INFO] Finished at: 2022-07-18T10:06:22+02:00
[INFO] ------------------------------------------------------------------------
[WARNING] The requested profile "artifactory" could not be activated because it does not exist.
[ERROR] Failed to execute goal io.github.georgberky.maven.plugins.depsupdate:dependency-update-maven-plugin:0.8.0:update (default-cli) on project my-tool-submodule: Execution default-cli of goal io.github.georgberky.maven.plugins.depsupdate:dependency-update-maven-plugin:0.8.0:update failed: createDependencyArtifact…ope, dependency.optional) must not be null -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal io.github.georgberky.maven.plugins.depsupdate:dependency-update-maven-plugin:0.8.0:update (default-cli) on project my-tool-submodule: Execution default-cli of goal io.github.georgberky.maven.plugins.depsupdate:dependency-update-maven-plugin:0.8.0:update failed: createDependencyArtifact…ope, dependency.optional) must not be null
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:375)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.apache.maven.wrapper.BootstrapMainStarter.start (BootstrapMainStarter.java:47)
    at org.apache.maven.wrapper.WrapperExecutor.execute (WrapperExecutor.java:156)
    at org.apache.maven.wrapper.MavenWrapperMain.main (MavenWrapperMain.java:72)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal io.github.georgberky.maven.plugins.depsupdate:dependency-update-maven-plugin:0.8.0:update failed: createDependencyArtifact…ope, dependency.optional) must not be null
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:148)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.apache.maven.wrapper.BootstrapMainStarter.start (BootstrapMainStarter.java:47)
    at org.apache.maven.wrapper.WrapperExecutor.execute (WrapperExecutor.java:156)
    at org.apache.maven.wrapper.MavenWrapperMain.main (MavenWrapperMain.java:72)
Caused by: java.lang.NullPointerException: createDependencyArtifact…ope, dependency.optional) must not be null
    at io.github.georgberky.maven.plugins.depsupdate.ArtifactoryExtensionsKt.createDependencyArtifact (ArtifactoryExtensions.kt:9)
    at io.github.georgberky.maven.plugins.depsupdate.UpdateResolver.getDependencyUpdates (UpdateResolver.kt:47)
    at io.github.georgberky.maven.plugins.depsupdate.UpdateResolver.getUpdates (UpdateResolver.kt:21)
    at io.github.georgberky.maven.plugins.depsupdate.UpdateMojo$execute$1.invoke (UpdateMojo.kt:46)
    at io.github.georgberky.maven.plugins.depsupdate.UpdateMojo$execute$1.invoke (UpdateMojo.kt:39)
    at io.github.georgberky.maven.plugins.depsupdate.UpdateMojo.withGit (UpdateMojo.kt:71)
    at io.github.georgberky.maven.plugins.depsupdate.UpdateMojo.execute (UpdateMojo.kt:39)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:370)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:351)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:171)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:163)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:294)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:960)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:566)
    at org.apache.maven.wrapper.BootstrapMainStarter.start (BootstrapMainStarter.java:47)
    at org.apache.maven.wrapper.WrapperExecutor.execute (WrapperExecutor.java:156)
    at org.apache.maven.wrapper.MavenWrapperMain.main (MavenWrapperMain.java:72)

Project Movement

This project was moved from @helpermethod account to @georgberky account. The following things have to be done to have a clean movement:

  • Update repository permissions
  • Propose a new group ID because of Maven Central policy about Maven coordinates
  • Change SCM Entries in POM file.
  • URL Entry should be changed
  • Update POM information
  • Create a release with the old Maven coordinates for a clean relocation (see Maven Guide for Relocation
  • Change package names in Java/Kotlin accordingly to groupId

Exclude reactor projects

Scenario prerequisites

  • multi-module reactor project
  • dependencies within modules

Story

As a lazy developer, I do not want to define ${project.version} for reactor artifacts in each pom file again and again.
Instead, I will define all modules and versions in my dependencyManagement of the reactor project's root pom like so:

<dependencyManagement>
  <dependency>
    <groupId>reactor.group.id</groupId>
    <artifactId>moduleA</artifactId>
    <version>${project.version}</version>
  </dependency>
</dependencyManagement>

Expected behaviour

Those dependencies from the reactor will be left as-is.

Actual behaviour

This plugin will pick those managed dependencies up and try to downgrade them to the latest version available in the release repository.

Enable DIND

Currently, the CI build does not support Docker In Docker for Testcontainers. To solve this issue, there are two options:

  • fix DIND in drone or
  • move to Github Action that supports DIND out of the box.

see also PR #32 and issue #28

Use Maven Wrapper v3.9.6 for builds

  • To have dependabot and renovate pick up the maven version
  • To have the same maven version across all CIs and developer places
  • Use latest bugfixes

PR inc

Make Push Option configurable

As developer, I want to set push option depending on my Git Management System. The configurable push options should be enabled for native Git and JGit.

The push option has to be set manually by the developer in the configuration section of the plugin.

Inform user, if new version of an already discovered artifact is available

As a developer, I want to be informed, if a new version of an already discovered artifact is available in the artifact repository.

Example:

We have already a branch for dependency A with version 1.0. This branch wasn't merged. Then the plugin finds a new version 1.1 for dependency A. Then the plugin logs a warning that a newer version is available. The plugin neither creates a new branch nor updates the existing one.

Split up Maven plugin into testable parts

Because testing the plugin as a whole is a non-trivial task, it's probably best to start splitting the plugin into multiple, testable parts.

Each part/class/module should receive their direct dependencies via constructor, so that dependencies can be mocked.

Evaluate jsoup

jsoup seems to be even better than JDOM at preserving XML after modification.

Evaluate

  • lines of code
  • number and size of dependencies
  • performance

Implement a native git provider

The project currently uses jgit for creating branches, committing modifications, pushing refs, etc... .

While jgit offers some benefits (Java-based DSL, does not require a native git client) it requires extensive setup for authenticating against a remote repository, which may be acceptable in Docker-based CI environments but not so in non-Docker based environments (Jenkins without Docker agent, local dev machine).

The goal of this ticket is to implement a git provider which uses the native git executable if present.

Comments are removed on update

It appears that this plugin uses the XmlNodePrinter to write out a pom.xml file which is indented with 4 spaces.

If you have no comments and are indented with 4 spaces then this is fine, however, I have quite a few comments in my pom.xml and I would guess not all pom.xml files are indented in a consistent way.

Would it be possible to update the pom.xml in a way similar to the versions-maven-plugin which leaves the rest of the pom.xml untouched?

Method VersionUpdate::canSkip should be named "VersionUpdate::canApply"

Method is used contrary to naming:

 UpdateResolver(
                    mavenProject = mavenProject,
                    artifactMetadataSource = artifactMetadataSource,
                    localRepository = localRepository,
                    artifactFactory = artifactFactory
            )
            .updates
            .onEach { println("execute im mojo: latestVersion: '${it.latestVersion}' / version:'${it.version}'") }
            .filter(VersionUpdate::canSkip)

Update already existing branch with a dependency update

As developer, I want that if a branch already exists for a dependency and a new version of this dependency is found in Maven repository, then the plugin should rename and change the already existing branch to the new version.

Example:

We have already a branch for dependency A with version 1.0. This branch wasn't merged. Then the plugin finds a new version 1.1 for dependency A. Then the plugin should update the branch with dep A and version 1.0 to version 1.1.

Set SCM Connection properties as Optional When Native Provider is chose

The native Git provider doesn't need the SCM connection information in the POM. But currently, this information is required by our plugin. Therefore, as developer I don't want to set up the SCM information when I choose native git as provider.

On the otherside, when I choose the JGit Provider the plugin should fail if the SCM connection information are missed

Migrate from Groovy to Kotlin

Dynamic Groovy makes refactoring really hard and does nothing to prevent NPEs.

Static Groovy has poor IDE support and its type inference is weak.

Switching to Kotlin should solve all those problems and result in smaller stacktraces and better performance.

Version updates in module poms are not covered by git add

I have a multi module project where some of the modules define versions themselves. The versions are updated but the POM files seem not to become part of the final git commit.

I will try to create a test scenario/test case for this as soon as my time permits.

Caused by: java.lang.NullPointerException: Cannot get property 'dependencies' on null object

With this pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>xy.z</groupId>
        <artifactId>z-parent</artifactId>
        <version>5.0.17</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <artifactId>z-ui</artifactId>
    <version>5.0.11-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>12</maven.compiler.source>
        <maven.compiler.target>12</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <drivers.dir>${project.basedir}/drivers</drivers.dir>
        <drivers.downloader.phase>pre-integration-test</drivers.downloader.phase>
    </properties>

    <dependencies>
        <dependency>
            <groupId>xy</groupId>
            <artifactId>z-db</artifactId>
            <version>5.0.37</version>
        </dependency>

        <dependency>
            <groupId>com.vaadin</groupId>
            <!-- Replace artifactId with vaadin-core to use only free components -->
            <artifactId>vaadin</artifactId>
            <exclusions>
                <!-- Webjars are only needed when running in Vaadin 13 compatibility mode -->
                <exclusion>
                    <groupId>com.vaadin.webjar</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.webjars.bowergithub.insites</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.webjars.bowergithub.polymer</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.webjars.bowergithub.polymerelements</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.webjars.bowergithub.vaadin</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.webjars.bowergithub.webcomponents</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-spring-boot-starter</artifactId>
            <exclusions>
                <!-- Excluding so that webjars are not included. -->
                <exclusion>
                    <groupId>com.vaadin</groupId>
                    <artifactId>vaadin-core</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jooq.pro</groupId>
            <artifactId>jooq</artifactId>
        </dependency>

        <dependency>
            <groupId>com.oracle.ojdbc</groupId>
            <artifactId>ojdbc8</artifactId>
        </dependency>

        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.0</version>
        </dependency>
        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jaxb</groupId>
            <artifactId>jaxb-runtime</artifactId>
            <version>2.3.0</version>
        </dependency>
        <!--
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>1.9.4</version>
        </dependency>
        -->

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-testbench</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <resources>
            <resource>
                <filtering>true</filtering>
                <directory>${basedir}/src/main/resources</directory>
                <includes>
                    <include>**/application*.properties</include>
                </includes>
            </resource>
            <resource>
                <directory>${basedir}/src/main/resources</directory>
                <excludes>
                    <exclude>**/application*.properties</exclude>
                </excludes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>com.vaadin</groupId>
                <artifactId>vaadin-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>prepare-frontend</goal>
                            <goal>build-frontend</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!--
            <plugin>
                <groupId>com.nickwongdev</groupId>
                <artifactId>aspectj-maven-plugin</artifactId>
                <version>1.12.1</version>
                <configuration>
                    <source>12</source>
                    <target>12</target>
                    <proc>none</proc>
                    <complianceLevel>12</complianceLevel>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjtools</artifactId>
                        <version>1.9.4</version>
                    </dependency>
                </dependencies>
            </plugin>
            -->
            <plugin>
                <groupId>com.amashchenko.maven.plugin</groupId>
                <artifactId>gitflow-maven-plugin</artifactId>
                <configuration>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <!-- Production mode is activated using -Pproduction -->
            <id>production</id>
            <properties>
                <vaadin.productionMode>true</vaadin.productionMode>
            </properties>

            <dependencies>
                <dependency>
                    <groupId>com.vaadin</groupId>
                    <artifactId>flow-server-production-mode</artifactId>
                </dependency>
            </dependencies>

            <build>
                <plugins>
                    <plugin>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-maven-plugin</artifactId>
                        <configuration>
                            <jvmArguments>-Dvaadin.productionMode</jvmArguments>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>com.vaadin</groupId>
                        <artifactId>vaadin-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>build-frontend</goal>
                                </goals>
                                <phase>compile</phase>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>integration-tests</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>start-spring-boot</id>
                                <phase>pre-integration-test</phase>
                                <goals>
                                    <goal>start</goal>
                                </goals>
                            </execution>
                            <execution>
                                <id>stop-spring-boot</id>
                                <phase>post-integration-test</phase>
                                <goals>
                                    <goal>stop</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>

                    <!-- Runs the integration tests (*IT) after the server is started -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>integration-test</goal>
                                    <goal>verify</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <trimStackTrace>false</trimStackTrace>
                            <enableAssertions>true</enableAssertions>
                            <systemPropertyVariables>
                                <!-- Pass location of downloaded webdrivers to the tests -->
                                <webdriver.chrome.driver>${webdriver.chrome.driver}</webdriver.chrome.driver>
                            </systemPropertyVariables>
                        </configuration>
                    </plugin>

                    <plugin>
                        <groupId>com.lazerycode.selenium</groupId>
                        <artifactId>driver-binary-downloader-maven-plugin</artifactId>
                        <version>1.0.17</version>
                        <configuration>
                            <downloadedZipFileDirectory>${project.basedir}/webdriver/zips</downloadedZipFileDirectory>
                            <rootStandaloneServerDirectory>${project.basedir}/webdriver</rootStandaloneServerDirectory>
                            <customRepositoryMap>${project.basedir}/webdrivers.xml</customRepositoryMap>
                        </configuration>
                        <executions>
                            <execution>
                                <!-- use phase "none" to skip download step -->
                                <phase>${drivers.downloader.phase}</phase>
                                <goals>
                                    <goal>selenium</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>

I get

[ERROR] Failed to execute goal com.github.helpermethod:dependency-update-maven-plugin:0.4.0:update (default-cli) on project tosca-ui: Execution default-cli of goal com.github.helpermethod:dependency-update-maven-plugin:0.4.0:update failed: Cannot get property 'dependencies' on null object -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.github.helpermethod:dependency-update-maven-plugin:0.4.0:update (default-cli) on project tosca-ui: Execution default-cli of goal com.github.helpermethod:dependency-update-maven-plugin:0.4.0:update failed: Cannot get property 'dependencies' on null object
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:213)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:567)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-cli of goal com.github.helpermethod:dependency-update-maven-plugin:0.4.0:update failed: Cannot get property 'dependencies' on null object
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:148)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:567)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
Caused by: java.lang.NullPointerException: Cannot get property 'dependencies' on null object
    at org.codehaus.groovy.runtime.NullObject.getProperty (NullObject.java:60)
    at org.codehaus.groovy.runtime.InvokerHelper.getProperty (InvokerHelper.java:190)
    at org.codehaus.groovy.runtime.callsite.NullCallSite.getProperty (NullCallSite.java:46)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty (AbstractCallSite.java:298)
    at com.github.helpermethod.UpdateMojo.dependencyManagementUpdates (UpdateMojo.groovy:173)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:567)
    at org.codehaus.groovy.reflection.CachedMethod.invoke (CachedMethod.java:101)
    at groovy.lang.MetaMethod.doMethodInvoke (MetaMethod.java:323)
    at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:1217)
    at groovy.lang.MetaClassImpl.invokeMethodClosure (MetaClassImpl.java:1050)
    at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:1092)
    at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:1041)
    at groovy.lang.Closure.call (Closure.java:405)
    at groovy.lang.Closure.call (Closure.java:399)
    at java_util_concurrent_Callable$call.call (Unknown Source)
    at com.github.helpermethod.UpdateMojo$_execute_closure1$_closure9.doCall (UpdateMojo.groovy:57)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:567)
    at org.codehaus.groovy.reflection.CachedMethod.invoke (CachedMethod.java:101)
    at groovy.lang.MetaMethod.doMethodInvoke (MetaMethod.java:323)
    at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod (ClosureMetaClass.java:263)
    at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:1041)
    at groovy.lang.Closure.call (Closure.java:405)
    at groovy.lang.Closure.call (Closure.java:421)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.findResults (DefaultGroovyMethods.java:4689)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.findResults (DefaultGroovyMethods.java:4673)
    at org.codehaus.groovy.runtime.dgm$267.invoke (Unknown Source)
    at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke (PojoMetaMethodSite.java:244)
    at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call (PojoMetaMethodSite.java:53)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall (CallSiteArray.java:47)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call (AbstractCallSite.java:115)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call (AbstractCallSite.java:127)
    at com.github.helpermethod.UpdateMojo$_execute_closure1.doCall (UpdateMojo.groovy:56)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:567)
    at org.codehaus.groovy.reflection.CachedMethod.invoke (CachedMethod.java:101)
    at groovy.lang.MetaMethod.doMethodInvoke (MetaMethod.java:323)
    at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod (ClosureMetaClass.java:263)
    at groovy.lang.MetaClassImpl.invokeMethod (MetaClassImpl.java:1041)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call (PogoMetaClassSite.java:37)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall (CallSiteArray.java:47)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call (AbstractCallSite.java:115)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call (AbstractCallSite.java:135)
    at com.github.helpermethod.UpdateMojo.withGit (UpdateMojo.groovy:135)
    at com.github.helpermethod.UpdateMojo$withGit.callCurrent (Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent (CallSiteArray.java:51)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent (AbstractCallSite.java:156)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent (AbstractCallSite.java:168)
    at com.github.helpermethod.UpdateMojo.execute (UpdateMojo.groovy:55)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:208)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:154)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:146)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:194)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:567)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:289)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:356)
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.