2011-09-09 4 views
1

J'écris un plugin maven maintenant et j'ai besoin d'obtenir le classpath d'un autre projet java. Je voudrais savoir s'il est possible d'obtenir le classpath d'un autre projet java de mon projet Java actuel? Merci à l'avanceComment obtenir le classpath d'un autre projet java?

+1

Obtenir "le chemin de classe d'un autre projet java" n'a aucune signification dans Maven. Décrivez ce que vous voulez vraiment faire (c.-à-d., * Quelle * information vous avez besoin, et * ce que vous prévoyez en faire). – parsifal

Répondre

1

si "un autre projet java" signifie "le projet qui declears votre plugin", voici ma réponse:

vous devez créer un nouveau classloader de plugin:

List classpathElements = project.getCompileClasspathElements(); 
classpathElements.add(project.getBuild().getOutputDirectory()); 
classpathElements.add(project.getBuild().getTestOutputDirectory()); 
URL urls[] = new URL[classpathElements.size()]; 
for (int i = 0; i < classpathElements.size(); ++i) { 
    urls[i] = new File((String) classpathElements.get(i)).toURL(); 
} 
return new URLClassLoader(urls, this.getClass().getClassLoader()); 

avec nouveau classloader, vous pouvez faire quelque chose (classe de chargement, réflexion, génération de code) avec les classes du projet

hibernate3-maven-plugin utiliser la même astuce pour générer le mappage à partir des classes annotées du projet