When ever i tried to Goals >> Compile pom.xml, I am getting the following error.
An internal error was encountered invoking the maven goal: Please check the exception details.
org.apache.maven.artifact.resolver.MultipleArtifactsNotFoundException: Missing:
1) org.apache.httpcomponents:httpcore:jar:4.1.2
Try downloading the file manually from the project website.
Then, install it using the command:
mvn install:install-file -DgroupId=org.apache.httpcomponents -DartifactId=httpcore -Dversion=4.1.2 -Dpackaging=jar -Dfile=/path/to/file
Alternatively, if you host your own repository you can deploy the file there:
mvn deploy:deploy-file -DgroupId=org.apache.httpcomponents -DartifactId=httpcore -Dversion=4.1.2 -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]
Path to dependency:
1) org.apache.httpcomponents:httpcore:jar:4.1.2
1 required artifacts are missing.
As per above error it suggests, Alternatively, if you host your own repository you can deploy the file there.
how can i provide a local repository to pom.xml.
This article explains what you require. Quoting from it:
A maven repository is just a directory somewhere, and that’s about it. In order to use it there are very few steps you need to do.
Choose a directory
Make sure its accessible via some network protocol to everyone who needs it (i.e. serve it via http or ftp or something.
Put the libraries you need in the directory, in a specific format.
Set up your maven builds to read from the repository
(optional) set up your maven builds to deploy your repository
To put existing libraries into the repository, use the maven deploy command.
To set up your build to read from the repository add the following xml to your pom.xml file:
servername-download
description
https://host/path
A detailed article for complete understanding of Maven repositories
Are you sure your Maven setup works? The artifact you're looking for is in the public Maven repository:
http://repo1.maven.org/maven2/org/apache/httpcomponents/httpcore/4.1.2/
It should be found just like any other publicly available artifact. Please check the spelling of the artifact and group in your pom file to make sure that you don't have a typo.
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.1.2</version>
</dependency>
What does Maven print before it fails? It usually says where it's checking for the artifact - does the URL I posted above show up?
Do you see similar issues with other artifacts?
You shouldn't have to host this artifact yourself since it's publicly available. It looks like you're running Maven from an IDE - can you try to run it from command line to see if you get the same error there?
To host local repository in pom.xml we have to set up maven properly.
we need to modify settings.xml and provide the local repository path in maven packages and then used it with IDE. So now on words if JAR is not available in my local repository then and then only maven tries to search in its maven repository.
please follow below blog to configure maven properly.
http://chiragsdiary.blogspot.in/2013/02/cxf-webservice-example-step-by-step.html
Related
I'm trying to migrate the artifacts of a maven project from Sonatype Nexus to Azure Artifacts and I'm following the steps described here.
So it's basically
mvn clean install: Creates a local copy of the artifacts.
Change the repository and distribution management URL and point to the destination Azure feed url.
mvn deploy: Deploys the artifacts into Azure feed.
This must work. But the project that I'm working on has a parent, which is provided to us externally and is not in maven central. That parent is not getting deployed and is missing from Azure Artifact feed and is resulting in an error.
Sample pom.xml
<project xmlns....>
<parent>
<groupId>parent.pom..
..
</parent>
<groupId>main.project...
<name>project..
<version>x.x..
<packaging>pom..
....
....
</project>
Getting error on trying to build the project from Azure Artifact.
C:/...MainProject> mvn clean install
...
...
[ERROR][ERROR] Some problems were encountered while processing the POMs
[FATAL] Non-resolvable parent POM for main.project...: Could not transfer the artifact parent.pom
Tried to create a small project with only parent pom as dependency and tried to upload it Azure Artifact feed.
But a similar error is being thrown up.
According to your description, please check if there is a proxy in your internet.
And try to delete the .m2 local Directory and run mvn clean install again to check if it works.
You can refer to this answer.
I have a jar xbean-asm9-shaded-4.20.jar present in Nexus repository2 and I have mentioned that repository under in pom.xml. There is one more Nexus repository repository1 mentioned under for other artifacts.
While running Jenkins build it also tries to download xbean-asm9-shaded-4.20.jar from repository1 and fails even though repository2 is mentioned before repository1 in pom.xml.
How can I make it look only under repository2 for xbean-asm9-shaded-4.20.jar
I have a multi-module maven project in azure repo:
Parent
----App
--POM.xml
----Core
--POM.xml
----API
--POM.xml
----ParentPOM.xml
When I tried to build App project in Azure, I am getting the following error: [ERROR] Failed to execute goal on the project: Could not resolve dependencies for project com.core:jar:1.0: Could not find artifact com.core:jar:1.0 in central (https://repo.maven.apache.org/maven2).
So I tried to create multiple tasks in the same azure build to package for each module (App, Core, API), which also gives the same result. Could someone please help me on how to build the multi-module project and get the App jar file.
The way I've done it:
with this command: install -pl (module name) -am
where the module name should be one of the submodules. If you want to build all of them then only go with install
I have found the solution for the multi-module maven dependency issue, First We need to build the parent pom.xml, then build the submodules as per hierarchical order. In between each module, add a task to copy and move the jar files to the staging directory. Here shared the image of my build steps. Please take a look and comment on any questions.
Please look into the DevOps configuration for reference
I have a fork of apache spark on github that I build from.
I have a maven repository that our company uses to manage dependencies.
Suppose the url of this maven repository is https://xyz.abc.com/maven.
If I run a command like
./build/mvn -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.5 -DskipTests install
Then all the jars get deployed to my local maven repository, but what I would really like is for them to be deployed to the repository mentioned above.
How can I do that? Do I need to modify certain files or set environment variables? Do I need to add a credential file somewhere?
I also looked into doing it with sbt, but I could not figure out how to do it with that either.
You want to publish artifact build by maven to remote repository (https://xyz.abc.com/maven).
Take a look at this guide for required configuration.
I am working on a JSF taglib. To test it I compile it to a JAR as described here and add it manually to a Dynamic Web Project (In the WEB-INF/lib directory).
I know that this step can be automated, but I do not know how. Can anybody explain how to copy a generated jar to a second project in Eclipse?
Thanks in advance!
quite some steps to do :)
add a pom.xml into your project and follow the maven directory structure. use packaging "jar" for the taglib project. Lets assume you use groupId=com.company.taglib artifactId=company-taglib version=1.0.0-SNAPSHOT
if you do a mvn install on this project it will copy the jar into your local maven repository (usually found at ~/.m2/ - now maven can resolve the dependency on your local machine
add a pom.xml to your webproject, use packaging "war" and add the taglib project as a dependency (within <dependencies> in pom.xml).
<dependency>
<groupId>com.company.taglib</groupId>
<artifactId>company-taglib</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
Maven will resolve this dependency from your local repository. In Eclipse using the m2e Plugin it will resolve the project directly.
To "publish" the taglib.jar you need an infrastructure to share artifacts. Usually using a repository proxy (Sonatype Nexus or Artifactory). You can also use a network folder using the file:// protocol for quick startup.
In the pom.xml you need to add the <distributionManagement> section (in the taglib pom.xml) to specify the folder / proxy the artifacts are uploaded to. A mvn deploy will then build and copy the jar file for you.
Other developers need to add that location as repository in settings.xml (I dont recommend doing that in pom.xml) or if you setup a maven proxy configure a mirrorOf in settings.xml
There are archteypes available (project templates) that will help you creating initial project structures: http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
see also: http://maven.apache.org/guides/getting-started/index.html