I knew mvn:package
can be used to generate JAR or WAR, is there any difference between mvn:assembly
?
They are quite different. 'package' is a simple command used for simple/single projects where you only have to create a jar/war.
The assembly plugin is much more powerful, and can be used to create full distribution packages for large projects. This can be just a simple jar file, but it can also be a large distribution archive for your project, including source code, documentation, etc. You configure what the assembly should look like by means of an XML file called the assembly descriptor.