com2ghz
com2ghz

Reputation: 2876

Maven include zip dependency

We have an zip artifact hosted on our local repository. Within my Maven project I would like to retrieve this zip dependency. From command line I can do that via:

mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.1:get \
     -DrepoUrl=https://artifactory.company.net/artifactory/releases\
     -Dartifact=com.company.api:my-swagger-doc:$VERSION:zip:resources

This will download the my-swagger-doc-2.5.3-resources.zip. I don't know how to do this in XML in my pom.xml.

My goal is to generate Spring controllers from this swagger file.

My question is: How can I download this zip artifact and let it extract in my target directory?

Upvotes: 0

Views: 1933

Answers (1)

leopal
leopal

Reputation: 4959

You can use unpack goal of Maven Dependency Plugin.

Find below an example snippet:

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<executions>
    <execution>
        <id>unpack</id>
        <phase>generate-resources</phase>
        <goals>
            <goal>unpack</goal>
        </goals>
        <configuration>
            <artifactItems>
                <artifactItem>
                    <groupId>groupId</groupId>
                    <artifactId>artifactId</artifactId>
                    <version>version</version>
                    <type>zip</type>
                    <outputDirectory>target/</outputDirectory>
                    <overWrite>true</overWrite>
                </artifactItem>
            </artifactItems>
        </configuration>
    </execution>
</executions>

In my example, I have attached the execution to generate-resources phase. Depending on your build, you may have to attach the execution of this goal to the appropriate phase.

Upvotes: 2

Related Questions