How do you generate module dependencies in MANIFEST.MF for JBoss AS 7 with maven?

migu picture migu · Jul 14, 2011 · Viewed 30.3k times · Source

In JBoss AS 7, a Web application that depends on libraries contained in the AS, must declare those dependencies in META-INF/MANIFEST.MF like this:

Dependencies: <package-name>

Example:

Dependencies: org.slf4j

(This is comparable to Import-Package: for OSGi.) Further information can be found in the articles about migration from older versions, class loading and implicit module dependencies for deployments

The project is built with Maven. All dependencies included in the AS are declared with scope 'provided'.

Now the question

Is there a simple way to create this list of dependencies automatically with Maven?

Only dependencies with declared scope 'provided' should be included, because all others are already included in the WAR.

Answer

Mike Minicki picture Mike Minicki · Jul 16, 2011

Those dependencies are declared by names which maven artifacts don't have any mappings to. You probably could keep groupId in sync with jboss module names but I'm not sure if it's a good idea. And I still can't think of any automated solution.

But there is a place where you can manage the configuration by hand, as described in one of the sources you provided in your question:

   <build>
       ...
       <plugins>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-war-plugin</artifactId>
           <configuration>
              <archive>
                 <manifestEntries>
                    <Dependencies>org.slf4j</Dependencies>
                 </manifestEntries>  
              </archive>
           </configuration>
         </plugin>   
       </plugins>
    </build>

I hope someone comes up with a plugin to make it less cumbersome.