When working in maven module, what's the difference between doing in intellij build -> Make Project and Maven Projects -> Root pom -> Compile phase.
Does intellij calls maven? Does both of them compile the sources to the same place? Do they both copy resources files? Why do we need both options? Does intellij download the dependencies automatically and we can just call project make, without using maven compile?
Maven projects IntelliJ IDEA lets you manage Maven projects. You can link, ignore projects, synchronize changes in Maven and IntelliJ IDEA projects, and configure the build and run actions.
mvn test-compile: Compiles the test source code. mvn test: Runs tests for the project. mvn package: Creates JAR or WAR file for the project to convert it into a distributable format. mvn install: Deploys the packaged JAR/ WAR file to the local repository.
Select a module or a project you want to compile and from the main menu, select Build | Build Project ( Ctrl+F9 ). IntelliJ IDEA displays the compilation results in the Review compilation and build output.
In the Project tool window, right-click your project and select Add Framework Support. In the dialog that opens, select Maven from the options on the left and click OK. IntelliJ IDEA adds a default POM to the project and generates the standard Maven layout in Project tool window.
They are actually quite similar in terms of the task they perform which is to compile the source and test paths of the project with javax.tools.JavaCompiler by default.
Does intellij call maven?
No it doesn't by default. Remember that this is just IntelliJ's built in Java compiler and some Java projects don't use maven.
Does both of them compile the sources to the same place?
Yes, they use the same source files to compile if that's what you are asking here.
Do they both copy resources files?
Yes they both copy the resource files to different locations though.
Why do we need both options?
We don't need both options. Maven compile command checks the source code against any syntactical errors which effectively covers the work done by IntelliJ's make option.
Does intellij download the dependencies automatically and we can just call project make, without using maven compile?
Intellij's compiler can be considered as syntax compiler which is why you need maven to handle your project's dependencies.
No, IntelliJ doesn't call maven, but get all information from the pom.xml e.g. output directories libraries etc.
So don't worry, you can call make from IntelliJ for compiling and running your application. If you have some special goals in your maven build file you can run it from the maven window.
All maven dependencies will be downloaded from IntelliJ an stored in the maven local repository.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With