With one pom.xml first I am creating a jar file with maven-jar-plugin and signing it with maven-jarsigner-plugin, second I am creating a tar.gz package with maven-assembly-plugin, copying jar file and other necessary files into tar.gz. Just because only tar.gz package is enough for me, I want only tar.gz package to deploy remote repository. When I run the "mvn deploy" command, both the jar and tar.gz packages are being deployed. Are there any method for not to deploy jar file to remote repository.
-
So hard to read. Please use bold text and so on. Thanks – kwoxer Nov 28 '17 at 10:41
-
Please share your pom.xml – jordiburgos Nov 28 '17 at 11:43
2 Answers
I tried your suggestion. It is not working for maven-deploy-plugin but it is working for maven-install plugin. Here is the relative part of my pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.4</version>
<configuration>
<skip>true</skip>
</configuration>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${project.build.directory}/${project.build.finalName}-dev.tar.gz</file>
<artifactId>${project.artifactId}</artifactId>
<groupId>${project.groupId}</groupId>
<packaging>tar.gz</packaging>
<version>${project.version}</version>
<classifier>dev</classifier>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<skip>true</skip>
</configuration>
<executions>
<execution>
<phase>deploy</phase>
<goals>
<goal>deploy-file</goal>
</goals>
<configuration>
<url>http://repo/artifactory/snapshots</url>
<file>${project.build.directory}/${project.build.finalName}-dev.tar.gz</file>
<artifactId>${project.artifactId}</artifactId>
<groupId>${project.groupId}</groupId>
<packaging>tar.gz</packaging>
<version>${project.version}</version>
<classifier>dev</classifier>
</configuration>
</execution>
</executions>
</plugin>
maven-install-plugin is installing only tar.gz file to local repository but maven-deploy-plugin deploying both tar.gz and jar files to remote repository. I think this behaviour can be maven-deploy-plugin's bug.

- 21
- 1
- 4
By default the Maven Deploy plugin will deploy all the artifacts attached to your project or module, i.e. both your .jar and tar.gz file.
deploy:deploy
is used to automatically install the artifact, its pom and the attached artifacts produced by a particular project.
What you can do is skip the deploy:deploy
goal and configure a personalized deploy:deploy-file
goal, such as:
<build>
...
<plugins>
...
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<skip>true</skip> <!-- Skip the default deploy -->
</configuration>
<executions>
<!-- Deploy our tar.gz -->
<execution>
<phase>deploy</phase>
<goals>
<goal>deploy-file</goal>
</goals>
<configuration>
<file>${project.build.directory}/${project.build.finalName}.tar.gz</file>
<artifactId>${project.artifactId}</artifactId>
<groupId>${project.groupId}</groupId>
<packaging>tar.gz</packaging>
<version>${project.version}</version>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
You'll have to configure <file>
to use your generated tar.gz file.

- 11,612
- 1
- 37
- 58
-
As far as I see, deploy-file requires providing the remote repository id and url separately from what is given in distributionManagement and there's no easy way to alternate between the snapshots and releases repos. – gdabski Feb 04 '21 at 16:45