Can any one explain all attritutes with details and case when we use?
Is there mendatory to use all?
It is definitely not mandatory to use all of the attributes. Typically during development you may use these in any module:
ATG-Class-Path: space separated classpath entries required for module including JARs that module is depending upon
ATG-Config-Path: space separated set of paths to Nucleus configuration files used by the module's components
ATG-Required: space separated set of other ATG module names which this module depends
ATG-EAR-Module: EAR file for this module whose J2EE modules are included in when assembled
Other attributes are used based on the situation when we want to specify certain attributes/properties related to ATG application module's environment and resources. E.g. ATG- cfgName Config-Path is used to specify the path for configuration files for the named configuration layer cfgName which is appended to the configuration path when we assemble application using the -layer switch say for staging / preview. Similarly ATG-LiveConfig-Path contains the configurations having settings appropriate for the production environment.
Following attributes are related to individual resource entry which is used when they are to be downloaded by the clients like ACC.