2017-05-08 5 views
1

J'ai un service de Repos Wildfly que j'ai généré à partir de Swagger jaxrs-resteasy. Le projet est réalisé à partir d'un IDE Jetbrains IntelliJ Idea et je suis aussi en train de lancer jrebel. Tout fonctionne très bien avec l'ensemble de l'installation, sauf que tout le code du chemin src/gen/java (le code généré) ne cesse d'être supprimé et téléchargé par JRebel. Est-ce que quelque chose me manque dans le fichier rebel.xml pour qu'il arrête de faire ça?Le code généré par Swagger continue d'être supprimé et ré-uploadé par JRebel - sans fin

console JRebel cycles en continu les messages suivants, et je crains que l'utilisation de l'énergie sera bientôt assez pour charger une Tesla ...

[2017-05-08 16:10:14] Synchronization took 189 ms in total. 
[2017-05-08 16:10:21] [Project RESServices, server Local Wildfly] Connecting to server to sync project 
[2017-05-08 16:10:21] [Project RESServices, server Local Wildfly] Deleting remote resource 'io/swagger/api/RestApplication.class' 
[2017-05-08 16:10:21] [Project RESServices, server Local Wildfly] Deleting remote resource 'io/swagger/model/TaxDataResponse.class' 
[2017-05-08 16:10:21] [Project RESServices, server Local Wildfly] Deleting remote resource 'io/swagger/api/StringUtil.class' 
[2017-05-08 16:10:21] [Project RESServices, server Local Wildfly] Deleting remote resource 'io/swagger/api/ApiOriginFilter.class' 
[2017-05-08 16:10:21] [Project RESServices, server Local Wildfly] Deleting remote resource 'io/swagger/api/ApiResponseMessage.class' 
[2017-05-08 16:10:21] [Project RESServices, server Local Wildfly] Deleting remote resource 'io/swagger/api/JacksonConfig.class' 
[2017-05-08 16:10:21] [Project RESServices, server Local Wildfly] Deleting remote resource 'io/swagger/api/AuthenticateApiService.class' 
[2017-05-08 16:10:21] [Project RESServices, server Local Wildfly] Deleting remote resource 'io/swagger/api/RFC3339DateFormat.class' 
[2017-05-08 16:10:21] [Project RESServices, server Local Wildfly] Deleting remote resource 'io/swagger/model/UserDefined.class' 
[2017-05-08 16:10:21] [Project RESServices, server Local Wildfly] Deleting remote resource 'io/swagger/api/JacksonConfig$1$1.class' 
[2017-05-08 16:10:21] [Project RESServices, server Local Wildfly] Deleting remote resource 'io/swagger/model/AuthenticationRequest.class' 
[2017-05-08 16:10:21] [Project RESServices, server Local Wildfly] Deleting remote resource 'io/swagger/api/NotFoundException.class' 
[2017-05-08 16:10:21] [Project RESServices, server Local Wildfly] Deleting remote resource 'io/swagger/api/TaxApiService.class' 
[2017-05-08 16:10:21] [Project RESServices, server Local Wildfly] Deleting remote resource 'io/swagger/model/ChargeItemType.class' 
[2017-05-08 16:10:21] [Project RESServices, server Local Wildfly] Deleting remote resource 'io/swagger/api/JacksonConfig$1.class' 
[2017-05-08 16:10:21] [Project RESServices, server Local Wildfly] Deleting remote resource 'io/swagger/api/ApiException.class' 
[2017-05-08 16:10:21] [Project RESServices, server Local Wildfly] Deleting remote resource 'io/swagger/api/JacksonConfig$1$2.class' 
[2017-05-08 16:10:21] [Project RESServices, server Local Wildfly] Upload succeeded in 147 ms. Transaction took 173 ms. 
[2017-05-08 16:10:21] Synchronization took 205 ms in total. 
[2017-05-08 16:10:24] [Project RESServices, server Local Wildfly] Connecting to server to sync project 
[2017-05-08 16:10:24] [Project RESServices, server Local Wildfly] Uploading resource 'target/classes/io/swagger/api/RestApplication.class' 
[2017-05-08 16:10:24] [Project RESServices, server Local Wildfly] Uploading resource 'target/classes/io/swagger/api/JacksonConfig.class' 
[2017-05-08 16:10:24] [Project RESServices, server Local Wildfly] Uploading resource 'target/classes/io/swagger/model/UserDefined.class' 
[2017-05-08 16:10:24] [Project RESServices, server Local Wildfly] Uploading resource 'target/classes/io/swagger/api/RFC3339DateFormat.class' 
[2017-05-08 16:10:24] [Project RESServices, server Local Wildfly] Uploading resource 'target/classes/io/swagger/model/TaxDataResponse.class' 
[2017-05-08 16:10:24] [Project RESServices, server Local Wildfly] Uploading resource 'target/classes/io/swagger/api/StringUtil.class' 
[2017-05-08 16:10:24] [Project RESServices, server Local Wildfly] Uploading resource 'target/classes/io/swagger/api/ApiOriginFilter.class' 
[2017-05-08 16:10:24] [Project RESServices, server Local Wildfly] Uploading resource 'target/classes/io/swagger/api/ApiResponseMessage.class' 
[2017-05-08 16:10:24] [Project RESServices, server Local Wildfly] Uploading resource 'target/classes/io/swagger/api/AuthenticateApiService.class' 
[2017-05-08 16:10:24] [Project RESServices, server Local Wildfly] Uploading resource 'target/classes/io/swagger/api/JacksonConfig$1$1.class' 
[2017-05-08 16:10:24] [Project RESServices, server Local Wildfly] Uploading resource 'target/classes/io/swagger/api/NotFoundException.class' 
[2017-05-08 16:10:24] [Project RESServices, server Local Wildfly] Uploading resource 'target/classes/io/swagger/model/AuthenticationRequest.class' 
[2017-05-08 16:10:24] [Project RESServices, server Local Wildfly] Uploading resource 'target/classes/io/swagger/api/TaxApiService.class' 
[2017-05-08 16:10:24] [Project RESServices, server Local Wildfly] Uploading resource 'target/classes/io/swagger/model/ChargeItemType.class' 
[2017-05-08 16:10:24] [Project RESServices, server Local Wildfly] Uploading resource 'target/classes/io/swagger/api/JacksonConfig$1.class' 
[2017-05-08 16:10:24] [Project RESServices, server Local Wildfly] Uploading resource 'target/classes/io/swagger/api/ApiException.class' 
[2017-05-08 16:10:24] [Project RESServices, server Local Wildfly] Uploading resource 'target/classes/io/swagger/api/JacksonConfig$1$2.class' 
[2017-05-08 16:10:24] [Project RESServices, server Local Wildfly] Upload succeeded in 178 ms. Transaction took 197 ms. 
[2017-05-08 16:10:24] Synchronization took 197 ms in total. 
+0

Nouvelle information: J'ai eu la configuration d'IntelliJ pour construire automatiquement. Cette désactivation a arrêté le cycle de déploiement et de non-déploiement continu de JRebel. La chose étrange est que le seul code affecté était ce code en dehors de src/main/java (ie:/src/gen/java) donc je pense toujours que JRebel doit pouvoir se comporter correctement même avec IntelliJ qui construit automatiquement. –

Répondre

1

Je doute que la question est en rebel.xml si vous pouvez d'abord commencer par un très simple rebel.xml et passer de là pour vérifier, dans votre cas ce qui suit devrait être un bon début:

<?xml version="1.0" encoding="UTF-8"?> 
<application generated-by="intellij" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com" xsi:schemaLocation="http://www.zeroturnaround.com http://update.zeroturnaround.com/jrebel/rebel-2_1.xsd"> 
    <classpath> 
     <dir name="/absolute/path/to/project/target/classes"> 
     </dir> 
    </classpath> 
</application> 

dans un premier temps JRebel fait une synchronisation où tous les anciens fichiers sont supprimés et les nouveaux téléchargés après quoi JRebel commence à surveiller tous les changements de fichiers dans le répertoire de construction local (../target/classes/) et déclenche un événement de synchronisation après avoir détecté une modification d'horodatage. Si le fichier md5 hash diffère du précédent, il sera téléchargé. De plus, JRebel peut également surveiller d'autres fichiers de ressources (fichiers web, fichiers de propriétés, etc.) qui peuvent être spécifiés dans rebel.xml.

Il est difficile de dire ce qui se passe exactement, mais je suppose que pour une raison quelconque, les fichiers générés sont recompilés très souvent (l'horodatage généré automatiquement peut-être) et JRebel détectent les hachages de ces fichiers. Vous pouvez vérifier manuellement les hachages de fichier et vérifier si cela peut être le cas.

Si, pour une raison quelconque, IDEA recompile et modifie constamment les fichiers .class, vous pouvez désactiver la synchronisation automatique de JRebel après chaque génération. Dans ce cas, vous devez synchroniser manuellement avec le serveur distant chaque fois que nécessaire.

Help > JRebel > Configuration > Remote Servers > "Synchronize on build"

JRebel IntelliJ remote servers configuration

Pour déterminer la raison exacte, s'il vous plaît ajouter rebel.ide.log = trace-{user.home} /. JRebel/jrebel.properties, redémarrez IDE et reproduire le problème, le journal sera généré comme jrebel-intellij.log. Envoyez-le à [email protected], ils seront en mesure de vous fournir plus de détails.

+0

Le comportement s'arrête si je ne configure pas automatiquement IntelliJ. Puisque le problème affecte seulement le code de l'extérieur de src/main/java (ie: de src/gen/java) je crois toujours qu'il doit y avoir un moyen de configurer JRebel pour ne pas déployer continuellement, étant donné que intelliJ fonctionne avec la compilation automatique , seul le code de src/gen/java est continuellement redéployé et non le code de src/main/java ou le code de src/test/java. –

+0

Oui, c'est possible. J'ai édité ma réponse originale. –