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
Post a Comment