8
votes

Comment exclure les pots d'être ajouté dans le fichier de guerre

Dans la demande, j'ai défini certains pots comme dépendance du projet. Ces pots sont ajoutés en tant que bibliothèque d'utilisateurs. Comme je suis exécuté de l'application dans JBoss AS7 et j'utilise l'implémentation JSF fournie par le serveur JBoss, j'ai copié ces pots JSF à partir du module et crée une nouvelle bibliothèque d'utilisateurs à savoir JBoss JSF. Cette bibliothèque a été utilisée pour créer un projet Web dynamique JSF 2 à Eclipse. Maintenant, lorsque je l'exporte comme un fichier de guerre, ces pots JSF sont automatiquement copiés et ajoutés dans / web-inf / lib code> de la guerre. Je ne veux pas que ces fichiers soient ajoutés comme ils sont déjà présents dans le conteneur.

Y a-t-il un moyen de le faire? P>

Pour plus d'informations, il s'agit du contenu du fichier .ClassPath : P>

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src/common"/>
    <classpathentry kind="src" path="src/service"/>
    <classpathentry kind="src" path="src/web"/>
    <classpathentry kind="src" path="src/persistent"/>
    <classpathentry kind="src" path="src/dao"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre7">
        <attributes>
            <attribute name="owner.project.facets" value="java"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
    <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JBoss JSF">
        <attributes>
            <attribute name="owner.project.facets" value="jst.jsf"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JBoss Servlet"/>
    <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/JBoss log4j"/>
    <classpathentry kind="output" path="build/classes"/>
</classpath>


3 commentaires

@Rahul J'ai déjà vu ce lien, la solution offrant un moyen d'exclure des fichiers de l'onglet Source.


+1 pour la suggestion sur la fourmi (même si la question est "Eclipse basée")


@Costache Droit, mais considérons que l'intégration des fourmis dans Eclipse a été présente depuis longtemps et fonctionne plutôt bien. De plus, Eclipse L'assistant d'exportation native IMHO a toujours été une douleur à utiliser, pas assez flexible pour mes besoins.


3 Réponses :


0
votes
  1. Ouvrez la boîte de dialogue Propriétés du projet.
  2. Sélectionnez le chemin de construction Java à partir du panneau de gauche.
  3. Sélectionnez l'onglet Source.
  4. Une liste de tous les bocaux inclus dans le projet sera répertorié.
  5. Sélectionnez le fichier JAR et cliquez sur le bouton Modifier.
  6. Dans la fenêtre de motif incluse ou exclue, choisissez exclu (si c'est ce que vous voulez) et ajoutez un motif. Sélectionnez OK.
  7. Dans chaque rangée du pot, à droite, vous verrez un signe plus ou moins en conséquence.

5 commentaires

Merci, mais je suis désolé, dans l'onglet Source, il n'y a que la liste de tous les fichiers source. Il n'y a pas de telle liste de bocaux. Les fichiers JARS sont répertoriés dans les bibliothèques.


Essayez de désélectionner les bibliothèques indésirables dans l'onglet Ordre et Exporter.


J'ai essayé cette option. Les bibliothèques sont là mais elles ne sont pas vérifiées.


J'ai ajouté le contenu de la classe de classe dans la question


Je ne veux pas "répondre" de la question en suggérant un outil différent, mais Apache Maven excèle vraiment de résoudre ce genre d'exigences de construction à grain fine. Mais même la fourmi pourrait déjà être une étape dans la bonne direction. Vous ne voulez pas violer votre IDE pour créer des déploiements, vous souhaitez avoir une solution fiable et reproductible.



2
votes

Essayez ceci

  1. Ouvrir les propriétés du projet
  2. Sélectionnez un ensemble de déploiement
  3. Sélectionnez des bibliothèques que vous devez exclure du fichier WAR, puis cliquez sur Supprimer. Les pots que vous avez sélectionnés seront supprimés du fichier de guerre

    ou essayez d'ajouter un attribut de plus au fichier .ClassPath xxx


2 commentaires

Rahul j'ai ajouté une image de l'assemblée de déploiement. Il n'y a pas de pots.


Pouvez-vous s'il vous plaît essayer d'ajouter un attribut de plus au fichier .ClassPath type



0
votes

Vous pouvez définir la portée de la dépendance à fournir. Vous vous attendez à ce que le JDK ou un conteneur fournisse la dépendance au moment de l'exécution. Par exemple, lors de la construction d'une application Web pour l'édition Java Enterprise, vous définissez la dépendance sur l'API d'API de servlet et une API Java EE associée fournie, car le conteneur Web fournit ces classes. Cette périmètre n'est disponible que sur la compilation et le test de classe de test et n'est pas transitif. Une dépendance à cette portée ne sera pas incluse dans les guerres / les oreilles.

 <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4</version>
        <scope>provided</scope>
    </dependency>


0 commentaires