Lundberg,
As you recommended, I am sending missing pieces to be added in plugin site.
I would change inside the Usage Page
(http://maven.apache.org/plugins/maven-acr-plugin/usage.html):
I would add before "If the packaging type defined in the pom.xml is
app-client, the package lifecycle phase can be used" the sentence:
"Define the package type to be app-client."
Before:
"Pay attention that prior to Maven 3.0.4, the plugin's extension must
be enabled since the app-client packaging type is new."
I would add
"Pay attention that JEE spec requires to add a manifest and a
Main-Class. So, your application client need this to be JEE compliant."
See "How can I specify a Main-Class: entry in the manifest of an
Application Client jar?" inside FAQ for more details.
Note: Some application servers may execute an application client without a Main-Class if you specify the Main-Class while running, however specify Main-Class while running would not be possible for some technologies such as Java Web Start Technology.
Inside FAQ Page (http://maven.apache.org/plugins/maven-acr-plugin/faq.html):
Add as the FIRST question:
1 - How can I specify a Main-Class: entry in the manifest of an
Application Client jar?
JEE spec and also some launching technologies such as Java Web Start Technology require to add a manifest and a Main-Class in application clients. This requirement is done because the launching technology need to know which method to execute.
So, you need to configure Maven Archiver accordingly inside the acr-plugin configuration of your pom.xml app-client project.
Here is a sample pom.xml configured to use the class fully.qualified.MainClass as the main class:
<project>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-acr-plugin</artifactId>
...
<configuration>
<archive>
<manifest>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
</configuration>
...
</plugin>
</plugins>
</build>
...
</project>
This configuration is really similar to making the jar executable for jar Maven projects.
See "Make the jar executable" in Maven Archiver Examples Page for more details
(http://maven.apache.org/shared/maven-archiver/examples/classpath.html#aMake).
Optionally you can configure Archiver to use your own manifest file
with an already define Main-Class. Details can be found here
http://maven.apache.org/shared/maven-archiver/examples/manifestFile.html.
Obviously, a good improvement should be make maven acr plugin warns
the user if do not find a Main Class configuration neither a
<manifestFile>src/main/resources/META-INF/MANIFEST.MF</manifestFile>.
In the case user added a manifestFile option and plugin couldn't check
if this manifestFile has a Main-Class, the plugin could at least info
the user to add a MainClass inside you own Manifest-File.
Best regards,
If you follow the link at the bottom of the page you will find examples of how to configure the manifest.