java - Is it possible to include only the used classes in a war file with maven build? -


say have dependency in pom.xml file:

  <dependency>       <groupid>javax</groupid>       <artifactid>javaee-api</artifactid>       <version>6.0</version>   </dependency> 

when

clean install 

all javaee-api-6.0.jar included in war file under web-inf\lib folder.

is possible instead of including whole jar, classes use , dependencies included?

if you're deploying java ee application server, entire jar provided application server, , can omitted war file. can accomplish putting provided scope:

  <dependency>       <groupid>javax</groupid>       <artifactid>javaee-api</artifactid>       <version>6.0</version>       <scope>provided</scope>   </dependency> 

that makes dependency available compilation , test execution, not package war.

in contrast, trying determine individual classes need can include class files pointless endeveor. jvm loads classes when used - is, unused classes not loaded.

it impossible identify used classes @ compile time due reflection. instance, consider:

system.console().printf("please specify implementation class use"); string classname = system.console().readline(); fooservice service = (fooservice) class.forname(classname).newinstance(); service.work(); 

you can jvm log classes loaded, different executions can use different classes ...


Comments

Popular posts from this blog

apache - Remove .php and add trailing slash in url using htaccess not loading css -

javascript - jQuery show full size image on click -