How to skip the release or specific modules in the maven repo

22,857

Solution 1

To understand you correctly, you still want to run the test modules, but your don't want to deploy/release them. The maven-deploy-plugin to the rescue! To artifact will still be built, but not deployed.

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <version>2.7</version>
    <configuration>
        <skip>true</skip>
    </configuration>
  </plugin>

However, the jenkins release plugin will still release all artifacts. Instead of using the jenkins release plugin, think about releasing with the maven-release-plugin, which is easy to do:

mvn release:prepare
mvn release:perform

Since the default goals are deploy and site, all should be ok.

Just make sure you have a scm tag in your root pom:

<scm>
    <connection>scm:svn|git:https://...</connection>
    <developerConnection>scm:svn|git:https://...</developerConnection>
</scm>

and that your versioning tool command (git, svn, ...) is available on the PATH.

Solution 2

You could add a maven command line option to specify modules to be built in jenkins.

-pl,--projects <arg>                   Comma-delimited list of specified
                                       reactor projects to build instead
                                       of all projects. A project can be
                                       specified by [groupId]:artifactId
                                       or by its relative path.
Share:
22,857
maxammann
Author by

maxammann

Updated on December 05, 2020

Comments

  • maxammann
    maxammann over 3 years

    Heyho,

    I have a maven project with this scructure:

    parent:

    • List item
    • API module
    • module2
    • ...
    • module5
    • test
    • distribution/assembly

    So first i run the parent module, then I run the module which builds the api, then the modules which depend on the api, then a test module which contains tools to test and at the end I run a assembly/distribution where I package some modules in a archive. Because of some problems I can not really change the way and it works so far perfect.

    With the jenkins I release it to the maven repo, but I want only to release for example the API, and a few modules, not the test module and the distribution module. Is there a way to skip them? Dont't want to release stuff I dont really need :/