-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Minor
-
Component/s: plugin-proposals
-
None
I'm not sure if this is actually fixable, but I wanted to record it just in case. I am exploring building my own hudson.war using m-war-p overlay mechanism. One of the things I do is remove stuff which is not important to my team, e.g. NLS, slaves, and cli; but I'd also like to just install the plugins that I know we're going to be using anyway. One of the things that irritates me is that there is a lot of duplication of support jars in the plugins we have installed.. perhaps each plugin has its own classloader? I'm not sure, but justifying having duplicated jars lingering around in each plugin is going to require justification of that kind of strength! ![]()
Some example command output will illustrate:
$ pushd $HUDSON_HOME
$ ls *.hpi
analysis-core.hpi
checkstyle.hpi
cobertura.hpi
cvs.hpi
dry.hpi
findbugs.hpi
greenballs.hpi
instant-messaging.hpi
ircbot.hpi
jabber.hpi
javancss.hpi
jdepend.hpi
maven-plugin.hpi
pmd.hpi
scis-ad.hpi
ssh-slaves.hpi
subversion.hpi
tasks.hpi
violations.hpi
warnings.hpi
$ less *.hpi | grep 'WEB-INF/lib' | grep jar | cut c 59 | sort
WEB-INF/lib/annotations-1.3.9.jar
WEB-INF/lib/annotations-1.3.9.jar
WEB-INF/lib/annotations-1.3.9.jar
WEB-INF/lib/annotations-1.3.9.jar
WEB-INF/lib/annotations-1.3.9.jar
WEB-INF/lib/annotations-1.3.9.jar
WEB-INF/lib/annotations-1.3.9.jar
WEB-INF/lib/ant-1.6.jar
WEB-INF/lib/asm-3.1.jar
WEB-INF/lib/classworlds-1.1.jar
WEB-INF/lib/commons-codec-1.2.jar
WEB-INF/lib/commons-codec-1.2.jar
WEB-INF/lib/commons-httpclient-3.1-rc1.jar
WEB-INF/lib/commons-httpclient-3.1.jar
WEB-INF/lib/commons-lang-2.4.jar
WEB-INF/lib/commons-logging-1.0.4.jar
WEB-INF/lib/commons-logging-1.1.jar
WEB-INF/lib/commons-validator-1.1.4.jar
WEB-INF/lib/dom4j-1.6.1.jar
WEB-INF/lib/doxia-core-1.0-alpha-4.jar
WEB-INF/lib/doxia-core-1.1.1.jar
WEB-INF/lib/doxia-logging-api-1.1.1.jar
WEB-INF/lib/doxia-module-xhtml-1.1.1.jar
WEB-INF/lib/doxia-sink-api-1.0-alpha-10.jar
WEB-INF/lib/doxia-sink-api-1.0-alpha-4.jar
WEB-INF/lib/doxia-sink-api-1.1.1.jar
WEB-INF/lib/icu4j-2.6.1.jar
WEB-INF/lib/java2html-5.0.jar
WEB-INF/lib/java2html-5.0.jar
WEB-INF/lib/jaxen-1.1.1.jar
WEB-INF/lib/jdepend-2.9.1.jar
WEB-INF/lib/jdepend-maven-plugin-2.0-beta-2.jar
WEB-INF/lib/jdom-1.0.jar
WEB-INF/lib/jsch-0.1.27.jar
WEB-INF/lib/jsr305-1.3.9.jar
WEB-INF/lib/jsr305-1.3.9.jar
WEB-INF/lib/jsr305-1.3.9.jar
WEB-INF/lib/jsr305-1.3.9.jar
WEB-INF/lib/jsr305-1.3.9.jar
WEB-INF/lib/jsr305-1.3.9.jar
WEB-INF/lib/jsr305-1.3.9.jar
WEB-INF/lib/library-1.3.9.jar
WEB-INF/lib/maven-agent-1.357.jar
WEB-INF/lib/maven-artifact-2.0.9.jar
WEB-INF/lib/maven-artifact-2.0.jar
WEB-INF/lib/maven-artifact-manager-2.0.9.jar
WEB-INF/lib/maven-artifact-manager-2.0.jar
WEB-INF/lib/maven-core-2.0.9.jar
WEB-INF/lib/maven-embedder-2.0.4-hudson-1.jar
WEB-INF/lib/maven-embedder-2.0.4.jar
WEB-INF/lib/maven-error-diagnostics-2.0.9.jar
WEB-INF/lib/maven-interceptor-1.357.jar
WEB-INF/lib/maven-model-2.0.9.jar
WEB-INF/lib/maven-model-2.0.jar
WEB-INF/lib/maven-monitor-2.0.9.jar
WEB-INF/lib/maven-plugin-api-2.0.9.jar
WEB-INF/lib/maven-plugin-api-2.0.jar
WEB-INF/lib/maven-plugin-descriptor-2.0.9.jar
WEB-INF/lib/maven-plugin-parameter-documenter-2.0.9.jar
WEB-INF/lib/maven-plugin-registry-2.0.9.jar
WEB-INF/lib/maven-profile-2.0.9.jar
WEB-INF/lib/maven-profile-2.0.jar
WEB-INF/lib/maven-project-2.0.9.jar
WEB-INF/lib/maven-project-2.0.jar
WEB-INF/lib/maven-reporting-api-2.0.9.jar
WEB-INF/lib/maven-reporting-api-2.0.jar
WEB-INF/lib/maven-reporting-impl-2.0.jar
WEB-INF/lib/maven-repository-metadata-2.0.9.jar
WEB-INF/lib/maven-repository-metadata-2.0.9.jar
WEB-INF/lib/maven-settings-2.0.9.jar
WEB-INF/lib/maven2.1-interceptor-1.2.jar
WEB-INF/lib/oro-2.0.7.jar
WEB-INF/lib/pircbot-1.4.6.jar
WEB-INF/lib/plexus-classworlds-1.2-alpha-9.jar
WEB-INF/lib/plexus-container-default-1.0-alpha-30.jar
WEB-INF/lib/plexus-container-default-1.0-alpha-9-stable-1.jar
WEB-INF/lib/plexus-interactivity-api-1.0-alpha-4.jar
WEB-INF/lib/plexus-utils-1.5.1.jar
WEB-INF/lib/plexus-utils-1.5.15.jar
WEB-INF/lib/pmd-4.2.4.jar
WEB-INF/lib/slide-webdavlib-2.1.jar
WEB-INF/lib/smack-3.1.0.jar
WEB-INF/lib/smackx-3.1.0.jar
WEB-INF/lib/svnkit-1.3.0-hudson-4.jar
WEB-INF/lib/wagon-file-1.0-beta-2.jar
WEB-INF/lib/wagon-http-lightweight-1.0-beta-2.jar
WEB-INF/lib/wagon-http-shared-1.0-beta-2.jar
WEB-INF/lib/wagon-provider-api-1.0-beta-2.jar
WEB-INF/lib/wagon-provider-api-1.0-beta-2.jar
WEB-INF/lib/wagon-ssh-1.0-beta-2.jar
WEB-INF/lib/wagon-ssh-common-1.0-beta-2.jar
WEB-INF/lib/wagon-ssh-external-1.0-beta-2.jar
WEB-INF/lib/wagon-webdav-1.0-beta-2-hudson-1.jar
WEB-INF/lib/xalan-2.7.1.jar
WEB-INF/lib/xercesImpl-2.6.2.jar
WEB-INF/lib/xercesImpl-2.8.1.jar
WEB-INF/lib/xercesImpl-2.8.1.jar
WEB-INF/lib/xml-apis-1.3.02.jar
WEB-INF/lib/xml-apis-1.3.03.jar
WEB-INF/lib/xml-apis-1.3.03.jar
WEB-INF/lib/xml-im-exporter-1.1.jar
WEB-INF/lib/xmlParserAPIs-2.6.2.jar
WEB-INF/lib/xom-1.0.jar
WEB-INF/lib/xpp3-1.1.3.3.jar
When I unpack each hpi into its own directory and then run du -h, I get 38M; when I unpack each hpi into the same directory, and allow the zip to overwrite existing JARs and then run du -h, I get 35M. This is about a 8% size savings...