1

I am converting our Jenkins Freestyle build to Declarative Pipeline mode. I am using the same POM files. But whenever i run the pipeline build, i see that the desired war is missing a transitive dependency. The Freestyle build includes that missing dependency however.

The Main parent POM includes:

<dependencyManagement>
<dependencies>
<dependency>
                <groupId>net.sf.dozer</groupId>
                <artifactId>dozer</artifactId>
                <version>5.5.1</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>jcl-over-slf4j</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
</dependencies>
</dependencyManagement>

The second parent includes section below, :

<dependencies>
        <dependency>
            <groupId>net.sf.dozer</groupId>
            <artifactId>dozer</artifactId>
        </dependency>
</dependencies>

For both build processes, the dozer artifact is contained in the war file. But dozer contains a dependency of its own:

<dependencies>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.9.1</version>
            <exclusions>
                 <exclusion>
                      <groupId>commons-logging</groupId>
                      <artifactId>commons-logging</artifactId>
                 </exclusion>
            </exclusions>
        </dependency>
</dependencies>

It is this commons-beanutils that I am missing from my final war when i do the Pipeline build. Since I am using the same POM files for both build processes, how can this be possible?

Please help

Micky
  • 21
  • 1
  • 5

0 Answers0