The situation is this: There is a maven project, there are several modules in it (as needed), there is a class with a main () method, in which certain methods are called, but this is not the point. I’m not familiar with maven, but I need to create a runnable jar file for this project. I am working in intellij idea, to create jar i execute maven: clean + install, i have 3 target folders created in each module. The main () method is located in the calc-console module.
In the console, I execute
java -jar calc-console-1.0-SNAPSHOT.jar and I get no main manifest attribute in calc-console-1.0-SNAPSHOT.jar.
Can I have a problem with the pom.xml? I did not touch the parent pom, and in the internal pom I indicated only the dependencies between the modules (not counting what was already initially generated).
Answer 1, authority 100%
JVM has no idea which class has a
main method, she needs to be prompted . The error text even says how to do this: you need to define the
Main-Class attribute in the manifest, the value of which will contain the full name of the class. For Maven to generate this attribute automatically, you need to add to pom.xml
& lt; project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> ... & lt; build & gt; & lt; plugins & gt; & lt; plugin & gt; & lt; groupId & gt; org.apache.maven.plugins & lt; / groupId & gt; & lt; artifactId & gt; maven-jar-plugin & lt; / artifactId & gt; & lt; version & gt; 3.1.1 & lt; / version & gt; & lt; configuration & gt; & lt; archive & gt; & lt; manifest & gt; & lt; mainClass & gt; HERE MUST BE CLASS NAME & lt; / mainClass & gt; & lt; / manifest & gt; & lt; / archive & gt; & lt; / configuration & gt; & lt; / plugin & gt; & lt; / plugins & gt; & lt; / build & gt; & lt; / project & gt;