How to update the version of Maven used by IntellijIdea - maven

I try to open the Maven project in IntellijIdea. This project uses spark and scala. When I run:
mvn clean install -DskipTests
then it gives the error:
[ERROR] Failed to execute goal
org.scalastyle:scalastyle-maven-plugin:0.7.0:check (default) on
project spark-mllib_2.10: Failed during scalastyle execution: You have
50 Scalastyle violation(s)
I think that the problem is in the version of Maven. Indeed in IntellijIdea Settings I have the version Bundled (Maven 3) 3.0.5, while pom.xml defines <maven.version>3.3.3</maven.version>
If I run mvn -version in terminal, it points Maven 3.3.3
So, how can I update the version of Maven used by IntellijIdea?

Install the new version of maven (If not already installed)
Go to File -> Settings and use the search bar to find maven settings
Edit the Maven home directory setting so it points to the installation folder of the desired version

It may sometimes happen that after configuring maven in Intellij and changing as following it does not work by command build, so build it by Intellij maven tool.
Setting > Maven > Importer - select the JDK
Setting > Maven > Runner - select the JRE
After that, try to build by Intellij maven tool instead of Intellij console.

Related

IntelliJ pulling in maven-enforcer-plugin without it being explicitly part of the pom.xml

When doing a build from IntelliJ I get the error saying
org.apache.maven.plugins.enforcer.RequireMavenVersion failed with message:
Detected Maven Version: 3.3.9 is not in the allowed range 3.6.0.
My maven Version is 3.3.9 and this is the one I want to stick to. I do recall when opening IntelliJ for the first time, going through a UI which asked me to specify a minimum and a maximum version for Maven and I did indeed specify 3.6 as a minimum. However I struggle to find the same settings at this point. Can someone point me to where IntelliJ's settings for Maven version boundaries are?
I'm using IntelliJ 2017.3.5
You can try this path
-> Menu > Preferences > Type: Maven or Go to Building, Execution: Maven > select your version - 3.3.9 from Maven home directory: dropwdown
Make sure you downloaded and set maven environment as global variables on your PC

M2E in VsCode (or terminal) as Apache Maven Eclipse Plugin has retired

I have to update .classpath, .project and .settings for a Maven project in VS Code. I read that mvn eclipse:eclipse has been retired and I tried that but it doesn't gives me correct files.
How can I use M2E in VScode to regenerate these files? Or, how can I use M2E from the terminal (independent of IDE)?
Reference:
Apache Maven Eclipse Plugin (RETIRED) - Introduction
maven - how to run the command mvn eclipse:eclipse - Stack Overflow

How to fix 'Missing requirement' error in Maven on Windows

I'm trying to build dbeaver and get the following error when running mvn package:
[ERROR] Cannot resolve project dependencies:
[ERROR] Software being installed: org.jkiss.dbeaver.slf4j 1.0.0.qualifier
[ERROR] Missing requirement: org.jkiss.dbeaver.slf4j 1.0.0.qualifier requires 'bundle org.slf4j.api 0.0.0' but it could not be found
I'm running on Windows 10 and using apache-maven-3.6.1. The strange thing is that when I try the same steps on Linux it builds without problem.
Update
Possible cause is maven 3.6.1 https://www.eclipse.org/lists/tycho-user/msg08177.html
Original post
The problem here, I presume, is that https://dbeaver.io/eclipse-repo/ p2 site is missing slf4j bundle and Tycho (?) cannot resolve the requirement. I still do not know how to make standalone maven build work, but here is an ugly workaround on how to build Windows binary with Eclipse (and embedded maven).
You can use p2-maven-plugin to build that missing bundle yourself. Instead of setting up a brand new project, you can temporarily modify product\localRepository\pom.xml to have a single artifact like
...
<artifacts>
<artifact><id>org.slf4j:slf4j-api:1.7.26</id></artifact>
</artifacts>
...
Now build that (product\localRepository\) project and start jetty
mvn p2:site
start mvn jetty:start
Now you can add this interim update site (http://localhost:8080/site/) to your Eclipse installation (Help -> Install New Software) and install slf4j. You should already be able to run DBeaver from within Eclipse.
To build a binary, add this interim repo into main pom.xml file, e.g. right after local-contrib one.
<repository>
<id>more</id>
<url>http://localhost:8080/site/</url>
<layout>p2</layout>
</repository>
Then go to Run Configurations -> Maven Build -> dbeaver, enter package goal and tick Skip Tests, click Run and go have some coffee.
As you can see Eclipse uses some sort of embedded maven runtime, so I guess it resolves things differently.
Note that if you are updating your local git repo, you might need to update your Eclipse project big time. I was unable to do it with right clicking on the project -> Configure -> Configure and Detect Nested Projects :( But deleting Eclipse project and nested projects (without deleting underlying files) and re-importing Maven project did the trick for me.
There is also an open issue for this https://github.com/dbeaver/dbeaver/issues/6115 .

Could not find artifact and could not resolve dependencies

I'm working in a maven project which contains many dependencies, i have a dependency from a centralized remote NEXUS repository ,so i should have a specific configuration in my setting.xml..
so When i launch clean install from the maven tab in intellij it displays errors:
ERROR] Failed to execute goal on project calender: Could not resolve
dependencies for project com.orange:calender:war:1.0-SNAPSHOT: Could
not find artifact com.francetelecom.clara.component:security:jar:3.0.0
in central (https://repo.maven.apache.org/maven2) -> [Help 1]
but when i switch to the Terminal tab in intellij the build succeed without errors and when i try to deploy the war within Tomcat it won't.
Tomcat log:
java.lang.NoSuchMethodError:
org.apache.commons.collections.ArrayStack: method (I)V not found
at org.apache.commons.digester.Digester.(Digester.java:150) at
com.francetelecom.clara.security.config.SecurityConfig.parse(SecurityConfig.java:95)
at
com.francetelecom.clara.security.SecurityManager.initialize(SecurityManager.java:114)
at
com.francetelecom.clara.security.SecurityManager.(SecurityManager.java:99)
at
com.francetelecom.clara.security.SecurityManager.getContextInstance(SecurityManager.java:371)
When running maven from maven tab in IntelliJ, you use the settings you find from Alt/Ctrl S -> Build, Execution, Deployment > Build Tools > Maven
When running from terminal in IntelliJ it will use first mvn you find on PATH and use configuration from what you get there. "mvn -version" from terminal will show you your Maven Home when running mvn from terminal

Do we have to include jar files in eclipse project if we are using maven?

I am new to maven.
The POM file in maven contains all the dependencies that we need in our project.
So we don't have to externally add any JAR's to the buildpath in eclipse.Right?
That's right. Maven will download dependencies and M2Eclipse (Eclipse plugin for integrating Eclipse with Maven) will setup a build path for you.
Two Solutions - 1 Using Eclipse IDE
Install the Maven (M2E Eclipse Plugin) if you use older version of eclipse, If you download the latest eclipse.
Point your settings.xml and create a maven project from your eclipse, it is better keep Group Id as com.yourcompany.app Artifact Id as yourProjectName and Version 0.0.1-SNAPSHOT depends on your Architecture Standards set by your company. Also Packaging can be as WAR file for WebApplication, EAR file for Enterprise Application. You can find the numerous list of examples from Maven Site.
2 From Command Line
Install Maven from Apache Maven site, Would recommend to go for the latest version -apache-maven-3.3.9-bin.zip.
Set the Maven Home in the Environment Variables as shown in the below figure.
Edit Your Path variable as %MAVEN_HOME%\bin, verify your installation by using this command from your command prompt. It should display the Maven Home and Java Version, which confirms your maven successful installation.
Paste your settings.xml (C:\apache-maven-3.3.9\conf) given by your build team or Architecture team for accessing your internal repository. And keep a backup of the original settings.xml (which is default download from Maven site)
Run these commands from your command prompt.
mvn eclipse:clean -e
mvn eclipse:eclipse -e (which will automatically set your project build path as shown in the below figure)
It will resolve your compilation issues and your project is ready as an deploy-able artifact

Resources