Friday, December 9, 2011

Ant classpath Tip #2 : afficher les problèmes de classpath à la compilation

Pour ce tip, on va s'appuyer sur une option non standard du compilateur Oracle-Xlint:path
Elle permet d'afficher des warnings sur des éléments déclarés au classpath mais que le compilateur n'arrive pas à trouver et qui du coup ne sont pas pris en compte.

J'ai trouvé cette option utile au moins pour les 2 cas suivants :

  • on a un jar qui déclare des dépendances via le classpath de son fichier manifest, en particulier via des chemins relatifs
  • détection des erreurs dans les chemins menant à un répertoire ou un jar qu'on déclare au classpath


La mise en oeuvre avec Ant est très simple.

<javac srcdir="${src.dir}" destdir="${classes.dir}"> 
  <classpath refid="core.classpath" /> 
  <compilerarg value="-Xlint:path" /> 
<javac>



Ça m'a bien aidé dans un contexte weblogic où $WL_HOME/modules/features/weblogic.server.modules_10.0.2.0.jar ne contient aucune classe et ne référence que des dépendances. Dans mon cas, une des dépendances manquait suite à une suppression involontaire dans mon installation weblogic
Le coupable en gras dans le Manifest qui suit. Ouf!


Manifest-Version: 1.0 
Class-Path: weblogic.server.modules.L10N_10.0.2.0.jar ../com.bea.core. 
 antlr.runtime_2.7.5.jar ../org.apache.ant.patch_1.6.5.1.jar ../org.ap 
 ache.ant_1.6.5/lib/ant-all.jar ../com.bea.core.apache.bcel_5.2.0.0.ja 
 r ../com.bea.core.repackaged.apache.bcel_5.2.0.0.jar ../com.bea.core. 
 apache.commons.collections_3.2.0.jar ../com.bea.core.apache.commons.l 
 ang_2.1.0.jar ../com.bea.core.apache.commons.pool_1.3.0.jar ../com.be 
 a.core.apache.dom_1.0.0.0.jar ../com.bea.core.apache.logging_1.0.0.0. 
 jar ../org.apache.openjpa_1.0.0.1.jar ../com.bea.core.apache.xml.secu 
 rity_1.3.0.jar ../com.bea.core.xml.xmlbeans_2.3.1.0.jar ../com.bea.co 
 re.logging_1.0.2.0.jar ../com.bea.core.bea.opensaml_2.0.0.0.jar ../co 
 m.bea.core.xml.staxb.buildtime_1.0.2.0.jar ../com.bea.core.xml.staxb. 
 runtime_1.0.2.0.jar ../com.bea.core.annogen_1.0.2.0.jar ../com.bea.co 
 re.kodo_4.1.3.1.jar ../com.bea.core.kodo.integration_1.0.1.0.jar ../c 
 om.bea.core.kodo.integration.tools_1.0.1.0.jar ../com.bea.core.proces 
 s_5.3.0.0.jar ../com.bea.core.xml.beaxmlbeans_2.3.1.0.jar ../com.bea. 
 core.repackaged.aspectj.aspectjweaver_5.0.0.jar ../com.bea.core.repac 
 kaged.apache.commons.logging_1.1.0.jar ../com.bea.core.repackaged.spr 
 ingframework.spring_2.0.2.jar ../com.bea.core.repackaged.springframew 
 ork.pitchfork_1.0.0.jar ../com.bea.core.common.engine.impl_2.0.2.0.ja 
 r ../com.bea.core.common.engine.api_2.0.2.0.jar ../com.bea.core.commo 
 n.security.api_2.0.2.0.jar ../com.bea.core.common.security.impl_2.0.2 
 .0.jar ../com.bea.core.common.security.jdkutils_2.0.2.0.jar ../com.be 
 a.core.common.security.utils_2.0.2.0.jar ../com.bea.core.common.secur 
 ity.providers.utils_2.0.2.0.jar ../com.bea.core.common.security.provi 
 ders.env_2.0.2.0.jar ../com.bea.core.apache.commons.net_1.4.1.jar ../ 
 glassfish.el_1.0.1.0_2-1.jar ../glassfish.jaxb_1.0.2.0_2-0-5.jar ../g 
 lassfish.jaxws.resolver_2.0.1.jar ../glassfish.jaxws.rt_1.0.1.0_2-0-1 
 .jar ../glassfish.jaxws.saaj.impl_2.0.1.jar ../glassfish.jaxws.sjsxp_ 
 2.0.1.jar ../glassfish.jaxws.tools_1.0.1.0_2-0-1.jar ../glassfish.sta 
 x.ex_1.0.0.jar ../glassfish.xmlstreambuffer_0.1.117.jar ../com.bea.co 
 re.apache.oro_2.0.8.jar ../javax.activation_1.1.jar ../javax.annotati 
 on_1.0.jar ../javax.interceptor_1.0.jar ../javax.ejb_3.0.jar ../javax 
 .jdo_2.0.jar ../javax.enterprise.deploy_1.2.jar ../javax.jms_1.1.jar 
 ../javax.jsp_1.0.1.0_2-1.jar ../javax.jws_2.0.jar ../javax.mail_1.4.0 
 .2.jar ../javax.management.j2ee_1.0.jar ../javax.persistence_1.0.1.0_ 
 1-0.jar ../javax.resource_1.5.jar ../javax.servlet_1.0.1.0_2-5.jar .. 
 /javax.transaction_1.1.jar ../javax.xml.bind_2.0.jar ../javax.xml.soa 
 p_1.3.0.0.jar ../javax.xml.stream_1.0.1.0_1-0.jar ../javax.xml.ws_2.0 
 .jar ../javax.xml.rpc_1.1.jar ../com.bea.core.apache.log4j_1.2.13.jar 
  ../monfox.dsnmp.agent_1.0.1.0_4-6-5.jar ../com.bea.core.jsafe_3.5.0. 
 jar ../com.bea.core.serp_1.12.0.jar ../com.bea.core.apache_1.0.1.0.ja 
 r ../com.bea.core.beangen_1.0.2.0.jar ../com.bea.core.beaninfo_1.0.1. 
 0.jar ../com.bea.core.datasource_1.0.2.0.jar ../com.bea.core.descript 
 or_1.0.3.0.jar ../com.bea.core.repackaged.asm_1.5.2.jar ../com.bea.co 
 re.diagnostics.core_1.0.1.0.jar ../com.bea.core.diagnostics.instrumen 
 tor_1.0.1.0.jar ../com.bea.core.i18n_1.0.1.0.jar ../com.bea.core.i18n 
 .generator_1.0.1.0.jar ../com.bea.core.management.core_1.0.1.0.jar .. 
 /com.bea.core.mbean.maker_1.0.1.0.jar ../com.bea.core.mbean.support_1 
 .0.1.0.jar ../com.bea.core.messaging.kernel_1.0.2.0.jar ../com.bea.co 
 re.resourcepool_1.0.2.0.jar ../com.bea.core.weblogic.rmi.client_1.0.1 
 .0.jar ../com.bea.core.weblogic.security.wls_2.0.2.0.jar ../com.bea.c 
 ore.weblogic.saaj_1.0.2.0.jar ../com.bea.core.weblogic.stax_1.0.2.0.j 
 ar ../com.bea.core.store_1.0.2.0.jar ../com.bea.core.store.gxa_1.0.1. 
 0.jar ../com.bea.core.transaction_2.0.2.0.jar ../com.bea.core.utils.f 
 ull_1.0.2.0.jar ../com.bea.core.utils.classloaders_1.0.1.0.jar ../com 
 .bea.core.utils.expressions_1.0.1.0.jar ../com.bea.core.utils.wrapper 
 _1.0.1.0.jar ../com.bea.core.timers_1.0.2.0.jar ../com.bea.core.weblo 
 gic.workmanager_1.0.2.0.jar ../com.bea.core.workarea_1.0.1.0.jar ../c 
 om.bea.core.jatmi_1.0.1.2.jar ../com.bea.core.weblogic.security_2.0.2 
 .0.jar ../com.bea.core.nodemanager.plugin_1.0.1.0.jar ../com.bea.core 
 .jmspool_1.0.2.0.jar 
Feature-Name: weblogic.server.modules

No comments:

Post a Comment