Missing artifact com.wavefront:wavefront-spring-boot:jar:2.0.0-RC1 error is showing.
<dependency>
<groupId>com.wavefront</groupId>
<artifactId>wavefront-spring-boot</artifactId>
<version>2.0.0-RC1</version>
</dependency>
This dependency is not released yet and it is a milestone so this artifact is located at SpringFramework repository (https://maven.springframework.org/milestone/) as mentioned on the central mvn repository.
Add a repository in your pom.xml file and this will resolve this issue.
Related
Suppose I have some Maven coordinates, like
org.ow2.asm:asm:5.0.3
How would I cache these artifact into (existing) local maven repository?
I believe this truly answers your question: it shows how to download and cache locally a specific Maven artifact from specific Maven repository with all dependencies without having to create pom.xml or any other sort of dependency declaration.
In your pom.xml add under <dependencies> the following :
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>5.0.3</version>
</dependency>
and use the command
mvn clean verify
at your project level to build the project and its dependencies to find the artifact in the corresponding .m2/repository folder.
In our project we use the artifact
<dependency>
<groupId>nl.jqno.equalsverifier</groupId>
<artifactId>equalsverifier</artifactId>
<version>1.7.5</version>
</dependency>
Everything works fine: Nexus downloads the same content as in http://repo1.maven.org/maven2/nl/jqno/equalsverifier/equalsverifier/1.7.5/ to its proxy repository.
('Download' column in artifact details on Nexus shows 'pom, jar')
Now, we switch to the newest version 2.0.2 of the artifact:
<dependency>
<groupId>nl.jqno.equalsverifier</groupId>
<artifactId>equalsverifier</artifactId>
<version>2.0.2</version>
</dependency>
Then, when we try to build the project then the attempt fails. Nexus cannot resolve the artifact! It seems like Nexus didn't download the complete content of the artifact version ('Download' column in artifact details on Nexus shows 'pom, pom'). On the other site, when I look at the artifact in the Central repository, the content is as usual: http://repo1.maven.org/maven2/nl/jqno/equalsverifier/equalsverifier/2.0.2/.
What causes the problem with the newest artifact version? Why can't Nexus download it correctly?
You may have overlooked that your dependency is of type pom. This will only download the pom, because that's what you are asking for. Remove the <type> and you should get the jar aswell.
<dependency>
<groupId>nl.jqno.equalsverifier</groupId>
<artifactId>equalsverifier</artifactId>
<version>2.0.2</version>
<type>pom</type> <-------------- Remove this
</dependency>
Assuming crea1's answer didn't solve your problem:
Maybe something went wrong when Maven downloaded the artifact, causing Maven to "think" the artifact was downloaded anyway.
You can force Maven to try and download it again with mvn -U test.
If that doesn't work, try going into ~/.m2/repository (or wherever Maven stores its artifacts locally on your system), locating EqualsVerifier, removing the entire 2.0.2 folder, and calling Maven again.
I have installed an artifact successfully into my local maven repository.
How do I add a dependency to this artifact in a second client maven project?
What would the POM file of the client look like?
It would be same as other dependency you are providing.
Let say you first project groupId is A.B.C.D ,artifactId is XYZ and version is 1.0,Then you just need to declare below line in the dependencies section of your second maven project,Maven will automatically find it from local repository.
<dependency>
<groupId>A.B.C.D</groupId>
<artifactId>XYZ</artifactId>
<version>1.0</version>
</dependency>
I use maven.
I want to use the last version of hibernate-search : 4.2.0.Final
I was under 3.3.0.Final
I can't a valid maven repository for this version.
Which maven repository I have to use to get this version of hibernate search ?
Because if you go there :
https://repository.jboss.org/nexus/index.html#nexus-search;gav~org.hibernate~hibernate-search~~~~kw,versionexpand
You'll find the version I need, but when I download hibernate-search-4.2.0.Final.jar and I unarchive it, I see there is only META-INF folder but no class in the jar : the jar is invalid !
Thanks for your help !
The hibernate-search project changed their artifact structure to use hibernate-search-orm instead of hibernate-search. Hibernate-search is now just a jar that declares a dependency on hibernate-search-orm which maven will resolve transitively and include in your project.
See the upgrade notes here - https://community.jboss.org/wiki/HibernateSearchMigrationGuide
More specifically this note - https://community.jboss.org/wiki/HibernateSearchMigrationGuide#New_jars_Maven_modules_reorganization
If you look in the pom for hibernate search you will see the dependency - this should all be resolved from central without any additional repository.
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>hibernate-search-orm</artifactId>
<version>${project.version}</version>
</dependency>
The best repository for JBoss artifacts is: https://repository.jboss.org/nexus/content/groups/public-jboss/
The available repositories are explained in their wiki: https://community.jboss.org/wiki/MavenRepository
The group public-jboss contains all releases and third-party artifacts required to by JBoss artifacts.
Isn't maven central good enough ?
http://search.maven.org/#search|ga|1|hibernate-search
Since this is a JBoss project, you can get newest builds from our Nexus repository. Here is how to configure it in your ~/.m2/settings.xml. Your pom.xml then should contain this dependecy.
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-search</artifactId>
<version>4.2.0.Final</version>
</dependency>
I have a dependency problem with maven. I used to have saxon 8.7 that is located on maven central. Then, I had to upgrade to the latests saxon-b 9.1.0.0 which is only partially on maven central.
This is a snippet of my dependencies:
<dependency>
<groupId>net.sourceforge.saxon</groupId>
<artifactId>saxon</artifactId>
<version>9.1.0.8</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>net.sourceforge.saxon</groupId>
<artifactId>saxon-dom</artifactId>
<version>9.1.0.8</version>
<scope>runtime</scope>
</dependency>
The first artifact 'saxon' is available on maven central, but the secon 'saxon-dom'. Here is the artifact I want.
Can I tell maven to download the "jar" file or am I obliged to download the jar and publish it locally on my maven repo to use it as a dependency?
Did not expect to resolve this so easily :
<dependency>
<groupId>net.sourceforge.saxon</groupId>
<artifactId>saxon</artifactId>
<version>9.1.0.8</version>
<classifier>dom</classifier>
</dependency>
Basically, I can get the dependencies that are "attached" to the 'saxon' artifact using the classifier tag. Did not know about this and I found out that the tag existed when I searched for 'saxon' on Sonatype repository (which is quite good). It gave me the dependency snippet above.
Reference : http://maven.apache.org/pom.html
If the required version is not in the repo, then yes you need to do one of the following alternatives
Search for a public repo containing the required version of jar. And add the repo to your pom.xml file. OR
Download it manually, and install it locally on your machine, to help the project build completely.