Can't release project due to non-released dependencies in Pipeline - maven

I am building a project in a pipeline. I am getting Build Failure Error: Can't release the project due to non-released dependencies.
Multi-module java project using Maven as the Build tool and Nexus as repository manager in Jenkins pipeline.
When the artifact named as -SNAPSHOT, I was able to build a snapshot, generate war file, upload it to Nexus but during the next cycle in the Build phase, it fails with the error: Can't release the project due to non-released dependencies. I don't have any control over the scripts/steps in the pipeline.

Related

At what phase and goal in Maven is the dependencies of the project downloaded?

When I build a maven project, I see in cmd the dependencies download commands, but I do not see in which goal of which plugin the download is performed. And at what phase it happens ?
Resolving dependency is Maven core feature is done during project model build (reading project structure).
So no plugin and no phase is applicable for dependency resolution - it is done before first plugin is run.
When some of dependencies was resolved early and are currently saved in ~/.m2/repository - next downloading will not occurs, so you can not see Downloading from ... for next project build.

Multi-Module local jar dependencies - Jenkins Pipeline

I need to build a Java project on Maven. I am working on a multi-module Maven project that's built on the Jenkins Pipeline in the Nexus repository. I have a few libraries that are not available on the Nexus repository. I can't manually upload the libraries. I am building this project on a pipeline.
What I did:
I created a folder named jars in the project root of the Git hub repository and manually put all the jar files that are not available on Nexus. In the dependency, I referenced all these local jars as in the dependency parameters.
In the repositories, I gave the URL of the git hub repo of the jar folder. The Jenkins were not able to pick the libraries. I am getting the following error: dependency: dependency version - Build Error - Could not build for non-released dependencies and I am getting an error for all the jars that are in the jars folder. I tried putting the jars folder in src/main/resources but still getting the same error.
How can I reference this jar folder so that the Jenkins Pipeline can take it? I don't have control over the Jenkins / Scripts that are involved. I am a developer just building it on the Pipeline.
P.S: I don't have access to the internet at my company to post the POM or Build Failure errors.
Adding more details:
It's built on the Pipeline. There are two repositories: Nexus 2 and Nexus 3. The particular libraries are not available on Nexus 3 and pipeline takes the build only on Nexus 3.
We have raised a request to upload those libraries but it's not going to happen anytime soon. The Jenkins Pipelines takes it's files from the Github repository and builds the Java project using Maven. I don't have control to a pipeline or any of the scripts in Jenkins.
We downloaded all the libraries that are not available and put that in a folder in git hub. There are 4 cycles in the Pipeline. Github Cycle / Jenkins Cycle / Deployment Cycle / Release Cycle.
Github Cycle: In this cycle, it follows three stages. It takes the code from the code, builds it. It builds the snapshot and uploads it to Nexus repo. In these 2 stages, it was able to successfully build by taking the code from the GitHub and builds it and artifact generated. Third stage: It's really strange as in this stage, it again builds and build getting failed in this stage citing code for Non Released Dependencies for the jars that are uploaded in the git hub.
What might be the reason for this: When it can build in the first two stages of the Github cycle and getting failed in the third stage for Build Failure for non-released dependencies.
The pipeline is designed in such a way that it looks only on Nexus 3 and build during each phase of the cycle.
In the repositories, I gave the URL of the git hub repo of the jar
folder
That does not work because your lib folder is not a valid Maven repository.
How can I reference this jar folder so that the Jenkins Pipeline can
take it?
You have some options:
Set up custom Maven repository manager. You can use Nexus
Repository Manager or JFrog Artifactory or something else.
It will give you the greatest flexibility and allow to do a lot more
in the future. Downside is, you will need to have the infrastructure
to run this which usually comes with some sort of maintenance cost.
Install the bundles in Maven's local repo from the jar folder you already have. There are two ways you can do that:
Via script in Jenkins Pipeline that runs before your build and calls mvn install-file ... for each library in your jar folder. You can find the exact syntax for this command on Apache Maven Install Plugin site
By changing your build and calling the install-file goal of the maven-install-plugin in earlier build phase. I've personally
never done that but this answer suggests it's possible.
remove the files from the jar folder and create a wrapper project for each of them which does nothing but install the jar in
the local maven repository. Make sure those are the first modules to
run in your multi-module project.

Build failure due to forking build

I have a parent maven project with various modules.
I cleared my maven local repository.
Now, when I try to build the whole project, while building one of the modules, its pom is forking build for other modules and is creating jar with .lastUpdated extension.
Due to this my maven build is failing because instead of finding abc.jar it is getting abc.jar.lastUpdated in maven local repository.
Why is maven forking build for other modules?
How can I get rid of this .lastUpdated extension?

How to release Maven project using Jenkins

When I am trying to release a Maven project using Jenkins, I am getting an error like this:
Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5:prepare (default-cli) on project maven-plugin: You don't have a SNAPSHOT project in the reactor projects list.
The error message means that the project (or one of its submodules) is not a SNAPSHOT project, i.e. it's version is not [version]-SNAPSHOT but only [version].
You cannot release a project that is not a SNAPSHOT project so you need to change the version of your pom.xml to include -SNAPSHOT.

jbpm maven build failing

I have cloned one jbpm git repository in eclipse and imported the project.
When i convert the same to a maven project, build is failing
Error
Description Resource Path Location Type
Project build error: Unresolveable build extension: Plugin org.kie:kie-maven-plugin:6.1.0.Final or one of its dependencies could not be resolved: Failed to collect dependencies for org.kie:kie-maven-plugin:jar:6.1.0.Final () pom.xml /jBpmLearn line 1 Maven pom Loading Problem
How to resolve this issue
Not sure which project you are cloning or why it's failing exactly, but have you added the JBoss Nexus maven repo so it knows where to find all the jBPM artefacts, like:
https://github.com/droolsjbpm/jbpm/blob/master/pom.xml#L50

Resources