Je souhaite conserver le fichier context.xml de Tomcat dans le répertoire META-INF de mon fichier WAR, si possible. Cela peut-il être fait avec le plugin cargo de Maven? Je n'arrive pas à trouver la configuration correcte.Est-il possible de fournir le fichier context.xml de Tomcat6 via le plugin Maven Cargo?
Répondre
Eureka! Après plusieurs jours d'étude de ce problème, j'ai finalement trouvé une solution très efficace. La clé est de prendre votre fichier de fragment de contexte XML Tomcat et d'utiliser l'élément de fret <configfiles>
pour le déposer dans le répertoire conf/Catalina/localhost
sous le nom context.xml.default
. Le seul inconvénient est que cela rendra vos définitions de contexte disponibles pour toutes les applications Web, mais cela ne devrait pas vraiment importer seulement Cargo utilise cette instance de Tomcat, il n'y a donc pas d'autre application web.
est ici la configuration:
<configuration> <!-- Deployer configuration -->
<type>standalone</type>
<properties>
<cargo.servlet.port>${tomcat6.port}</cargo.servlet.port>
</properties>
<deployables>
<deployable>
<groupId>com.myapp<groupId>
<artifactId>myapp-war</artifactId>
<type>war</type>
<properties>
<context>${tomcat6.context}</context>
</properties>
</deployable>
</deployables>
<configfiles>
<configfile>
<file>${basedir}/../config/tomcat-context.xml</file>
<todir>conf/Catalina/localhost/</todir>
<tofile>context.xml.default</tofile>
</configfile>
</configfiles>
</configuration>
Le résultat net est de modules WAR plus faux pour tester uniquement, et pas plus fusion de WARs. J'espère que cela aide quelqu'un.
Je n'ai pas encore trouvé le moyen de le faire, mais j'ai trouvé un travail qui fonctionne dans mon projet. J'ai actuellement un projet essentiellement 3 sous-modules:
dependencies
webapp
smoketest
Lorsque je construis le projet « webapp », j'exécute la déclaration de plugin suivante:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<executions>
<execution>
<id>create-war-smoketest</id>
<phase>verify</phase>
<goals>
<goal>war</goal>
</goals>
<configuration>
<webappDirectory>${project.build.directory}/exploded</webappDirectory>
<primaryArtifact>false</primaryArtifact>
<classifier>smoketest</classifier>
<webResources>
<resource>
<filtering>true</filtering>
<directory>src/test/resources/smoketest</directory>
<targetPath>META-INF</targetPath>
<includes>
<include>context.xml</include>
</includes>
</resource>
</webResources>
</configuration>
</execution>
</executions>
</plugin>
Et puis quand je suis en mon Cargo/WebTest suite dans le projet SmokeTest, je précise le SmokeTest fichier WAR en tant que dépendance et dans ma configuration de la cargaison et mes deployrables ainsi:
<deployables>
<deployable>
<groupId>${pom.groupId}</groupId>
<artifactId>webapp</artifactId>
<type>war</type>
<properties>
<context>smoketest</context>
</properties>
</deployable>
</deployables>
Avec la dépendance l ooking quelque chose comme:
<dependencies>
<dependency>
<groupId>${pom.groupId}</groupId>
<artifactId>webapp</artifactId>
<version>${pom.version}</version>
<classifier>smoketest</classifier>
<type>war</type>
<scope>system</scope>
<!-- trick the dependency plugin to never look for it in the repo -->
<systemPath>${basedir}/../webapp/target/webapp-${pom.version}-smoketest.war</systemPath>
</dependency>
</dependencies>
C'est extrêmement sale, mais ça marche au moins ... pour l'instant. Une note rapide: mon commentaire sur le forcer à ne jamais chercher une version dans le repo est peut-être incorrect à ce stade; Je pense que cette astuce peut avoir été cassée par une modification du plugin de dépendance à un moment donné.
Moi aussi, j'ai essayé - et ça marche aussi pour moi. J'espérais juste me passer de l'artefact de WAR, car nous ne voulons pas/ne pouvons pas envoyer de WAR avec un fichier context.xml filtré. – HDave
- 1. Aide avec Selenium Maven Cargo
- 2. Plugin Maven pour générer le fichier ISO
- 3. GlassFish v3 cargo-maven2-plugin
- 4. maven tomcat plugin avec le pilote mysql dans $ catalina_home/lib
- 5. Cargo ne fonctionne pas sur proxy intégré avec maven 2
- 6. Comment transmettre les propriétés système Java au conteneur maven-cargo
- 7. Problème lors de l'utilisation de Maven avec le plug-in Cargo
- 8. Le plugin Maven archtype n'existe pas Erreur
- 9. Pourquoi le plugin maven eclipse brise-t-il le plugin maven jetty?
- 10. plugin Maven changelog avec le problème Mercurial
- 11. Comment utiliser JSP 2.1 avec Cargo maven plugin et Jetty6x embedded?
- 12. Comment déployer EAR à distance vers JBoss 5.1.0.GA en utilisant Cargo maven plugin?
- 13. Comment puis-je obtenir le plugin Maven Shade pour copier un fichier arbitraire dans le fichier
- 14. GWT 2.1 et le plugin Codehaus Maven
- 15. Quel est le meilleur plugin Maven Eclipse?
- 16. maven eclipse checkstyle plugin
- 17. Génération d'UUID via Maven
- 18. Comment hériter le chemin actuel lors de l'appel de exec-maven-plugin de Maven?
- 19. Modifier le répertoire de sortie pour apt-maven-plugin
- 20. Maven maven-exec-plugin plusieurs configurations d'exécution
- 21. Maven Chronos plugin
- 22. plugin Maven
- 23. Plugin Maven exécutant un autre plugin
- 24. maven-buildnumber-plugin
- 25. Est-il possible d'utiliser maven uniquement pour exécuter le plugin au sélénium?
- 26. Rails - Fournir une clé de licence pour le plugin basé sur le nom d'hôte
- 27. Exécuter le fichier à partir de l'objectif maven
- 28. maven, ant plugin
- 29. problème application context.xml pour le printemps ActionScript
- 30. Maven jetty plugin et le répertoire des ressources
Cela a fonctionné à l'exception du fait que la cargaison 1.1.1 semble ne pas ajouter de nouveaux fichiers. J'étais seulement capable de remplacer les fichiers. – Ralph