jira-importer commented on issue #61:
URL: 
https://github.com/apache/maven-acr-plugin/issues/61#issuecomment-2879230318

   **[Gustavo 
Orair](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=orair)** 
commented
   
   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,
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@maven.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to