Comment Combiner Plusieurs Pots en Un seul?

J'ai lu de nombreux articles et explications sur le présent et le passé trop d'heures, mais tout est trop large ou spécifique.

Cette question s'applique seulement à une Applet que j'ai fait. Il contient une Classe, et nécessite 2 autres Jar bibliothèques. J'ai inclus dans ces projets (plusieurs projets, parce que j'ai essayé ceci dans Netbeans et Eclipse...il est facile de recréer un projet de Classe). Le point de tout cela est que mon code HTML/web projet ne devrait pas avoir à traiter avec plus d'un Pot ou d'une référence. Ce n'est pas compliqué, l'applet/projet à tous.

À l'origine, je l'ai fait dans Netbeans. Il a le paquet, et après l'ajout des 2 Pots, ils sont mis dans un "Bibliothèques" (les "ressources" du dossier). Après la construction, Netbeans crée un Pot pour mon un paquet de classe, et met ensuite les 2 autres bibliothèques dans un "lib", à côté d'elle. Je voudrais qu'ils soient dans un, distribuable Jar. De nombreuses choses que j'ai regardé à travers, j'ai essayé de mettre la suite dans build.xml:

<target name="YourBigJar" depends="-post-jar">
  <jar destfile="dist/BigJar.jar">
    <zipfileset src="dist/cxapplet.jar"/>
    <zipfileset src="resources/dpotapi.jar"/>
    <zipfileset src="resources/dpotjni.jar"/>
  </jar>
</target>

Mais il ne produit rien. J'ai obtenu ce à partir de NetBeans - le déploiement de toutes les dans un bocal . Je ne sais pas/comprendre comment l'utiliser build.xml, donc je ne serais pas surpris si quelque chose ne va pas (évidemment), mais je n'obtiens pas d'erreur/messages d'avertissement.

Quand je l'ai fait dans Eclipse, il combine efficacement, mais lorsque j'utilise le Pot dans mon projet web, il dit qu'il ne trouve pas les classes à partir de la 2 autres Pots. Je ne comprends pas comment résoudre le problème, mais est-ce un problème de Classpath? Dans Eclipse, je fais un nouveau répertoire appelé "lib" et mettre les Pots dans le. Ensuite, je cliquez-droit sur le projet, allez dans "Java Build Path", et d'ajouter les Pots, également de la vérification en vertu de l'Ordre "et d'Exportation" de l'onglet. De choses que j'ai lues, je cliquez-droit sur le projet, cliquez sur "Exporter", choisissez "Pot", décochez la case ".classpath" et ".projet" les fichiers, seulement vérifier l'Exportation "a généré les fichiers de classe et des ressources", puis lui permettre de générer le fichier de manifeste. Comme je l'ai dit, cela génère un Bocal, mais son contenu de mon colis et ensuite un "lib", qui a les 2 autres Pots. Le Manifeste est là, mais c'est assez vide et ne faisant pas référence à tous les fichiers (pas sûr si c'est important). Quand je l'ai mis dans mon application web, elle explique l'applet ne peut pas trouver les autres classes.

Il semble donc simple - un paquet de classe, deux Pots...combiner en un seul Pot lors de la construction pour la distribution sous forme d'applet. Des idées?

Mise à JOUR:

Depuis que nous avons commencé à l'aide de Maven, quelqu'un a regardé dans l'aide d'un plugin Maven. Nous avons donc fini la création d'un nouveau projet de maison de l'applet (car il est utilisé dans plusieurs projets), et utilisé dans notre pom.xml, à la fin:

<build>
<resources>
<resource>
<directory>${basedir}/applet</directory>
<excludes>
<exclude>codesignstore</exclude>
</excludes>
</resource>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-5</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>cxapplet</finalName>
<archive>
<index>true</index>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
<appendAssemblyId>false</appendAssemblyId>
</configuration>
<executions>
<execution>
<id>make-my-applet-jar</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jarsigner-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<id>sign</id>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
<configuration>
<keystore>${basedir}/applet/codesignstore</keystore>
<alias>codesigncert</alias>
<storepass>HIDDEN</storepass>
<keypass>HIDDEN</keypass>
</configuration>
</plugin>
</plugins>
</build>

Et c'était agréable car il nous a permis d'utiliser notre Certificat de Signature de Code pour vous connecter automatiquement aussi.

"Le point de tout cela est que mon code HTML/web projet ne devrait pas avoir à traiter avec plus d'un Bocal", Il est trivial de faire en sorte que le navigateur peut le manipuler. "des idées?" Déployer les Pots de la manière habituelle (qui a des avantages sur votre stratégie actuelle) & vous faire gagner du temps.
De son mieux pour rendre les dépendances d'un pot à l'autre.De nombreux jar outils de prise de rend votre travail plus facile.
Je ne suis pas sûr de ce que tu veux dire, mais c'est pourquoi je suis en train d'utiliser Netbeans et Eclipse de construire des outils, dont je pensais qu'ils le feraient, pour accomplir cette tâche.
Donc ma principale raison de poser cette question c'est parce que je vais avoir des problèmes de connexion, les Bocaux et le navigateur conscients de cette nécessité. Je sais, la première étape devrait avez été d'identifier le problème avec la signature, mais tout dans le Pot, si je extraire et de regarder à travers elle, l'air bien, c'est pour ça que je m'inquiète un peu avec plusieurs Pots. Vous ne savez pas si c'est la cause réelle, mais je pensais que ça pourrait être mieux et, éventuellement, si je mélangez le tout
Je ne parle pas d'IDE, mais jar outil de prise,google

OriginalL'auteur Ian | 2013-01-16