How to create maven dependency in java? - maven

How to create maven dependency in java?
what are the benefits of maven?
what is the role of pom.xml?
mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:get
-DrepoUrl=http://download.java.net/maven/2/ -Dartifact=robo-guice:robo-guice:0.4-SNAPSHO

mvn install
Download the “kaptcha“, extract it and copy the kaptcha-version.jar to somewhere else, for example, c drive. Issue following command :
pom.xml
After installed, just declares the kaptcha coordinate in pom.xml.
Done
Build it, now the "kaptcha" jar is able to retrieve from your Maven local repository.
link :-http://www.mkyong.com/maven/how-to-include-library-manully-into-maven-local-repository/

Related

Errors with Maven install on a project

I'm trying to install Maven on a project (with mvn clean install) but I have some errors and I don't know what they mean.
Here is the screen shot of the cmd :
I also add the right environment variables for maven (M2, M2_HOME and MAVEN_OPTS).
Can someone help me and tell me what it means please ?
It means that your dependency to eu.akka.jbossas:jboss-as-client:7.1.7.Final that you have specified in your POM is not available at Maven central. Do you have the jar file available somewhere?
If that is the case, run this:
mvn install:install-file -Dfile=<your jar file> -DgroupId=eu.akka.jbossas -DartifactId=jboss-as-client -Dversion=7.1.7.Final -Dpackaging=jar
Please bear in mind that this means that only the machine you are running on will be able to build your project. If other developers/machines also need to build this project, consider installing a central repository at your site, such as Nexus or Artifactory, and upload the jar file there. You will then also need to make Maven aware that it should fetch the dependencies from there.
The error tells you that the maven dependency eu.akka.jbossas:jboss-as-client doesn't exist. I've checked the url where it should be and it doesn't exist.
You should check other dependencies. For example the one maven provides:
<dependency>
<groupId>org.jboss.as</groupId>
<artifactId>jboss-as-appclient</artifactId>
<version>7.1.1.Final</version>
</dependency>
If you've got the jar local, you can create a maven-dependency by using this guide.

I want to include a jar file in my build using maven

The problem is like this
I have a maven build of my project already. But I have a requirement wherein I need to replace a .jar file located in WEB-INF/lib folder with another .jar file. This new jar file can be downloaded from a link.
What changes do I have to make in the pom.xml file to achieve this requirement. I tried to find out ways to do it but could not figure out the exact solution as I am a novice in Maven.
Assuming that the jar file is not found in any public maven repository you can install it in your local repository using the install plugin mvn install:install-file ... and refer it as any other dependency

Maven: Deploying a jar/war with built in pom.xml file

I don't have a Maven project. What I have is a jar with the pom.xml embedded in the file. When I deploy this via the Artifactory GUI, Artifactory finds the pom and deploys it with the jar. It even recognizes the groupId, artifactId, and version.
When I try using mvn deploy:deploy-file it fails. If I extract the pom, and run mvn deploy:deploy-file with the -DpomFile=pom.xml, it works. Is there a way of deploying this jar with the embedded pom via the Maven command line? Or, do I need to extract the pom.xml first?
I have not heard of the possibility to specify the pom file from archive. I think it is unlikely to be an option, because Maven itself is just a light-weight program, which runs with plugins; and it needs some configurations to run with; and all references to plugins to be used are in those files.
Consider writing an Ant script that will extract the file, run mvn deploy:deploy-file -DpomFile=pom.xml and then delete the file.
The solution looks not very nice, I know, but it should help.
This is an Artifactory feature and not standard Maven behaviour.
Keep in mind that, for example, if you use dependency:unpack-dependencies or the assembly plugin to create some sort of über jar there would be multiple pom.xml files within the jar under the /META-INF/ path so it would be very difficult to select which pom was the true pom.

Adding Jar files to Maven

I have started to work on maven project recently.
The piece of code I am writing needs JAR files that are not a part of the project.
When I add the JARS TO THE build path and use a mvn clean install, the build is failing with errors saying that the classes that were supposed to be in the jar were not found.
Is there anything that i am missing?
Is there a different way to add the JAR's in maven projects?
If the JARs are already hoisted in some public Maven repositories, add them to the <dependency> section in the pom.xml . You may have to configure the address of these public Maven repositories in the <repositories> section in the pom.xml in order to cause Maven can connect them.
Otherwise , you have to use the install command to include these JARs into the your local repository and then add their <dependency> section in the pom.xml
The command to install the JARs into your local repository:
mvn install:install-file -DgroupId=com.abc -DartifactId=XXXXX
-Dversion=1.0 -Dpackaging=jar -Dfile=/path/to/jars
It sounds like you don't understand how Maven works. You don't add jars to the build path, you declare them in the pom, and let Maven download to the local drive, and it adds it to the build path for you. I would recommend you read this 5 minute intro, and understand how the dependency management works.

How to install maven artifact directly into repo

In grape there is a nice way to download any artifact to repo directly, just calling something like
grape install org.apache.derby derby 10.5.3.0
As far as I understand, maven install:install goal requires pom.xml file, and maven install:install-file requires local file which you are pointing to and which you actually want to place in local repo.
Is there is any way to install any artifact to maven repo directly, without creating maven project and declaring dependency in pom.xml?
UPD: I guess the search is over. We should use dependency:get goal.

Resources