Comment puis-je nettoyer _svn dossiers / fichiers de « src / main / webapp » dossier lorsque maven2 construit projet webapp dans NetBeans 6.7?
-
13-09-2019 - |
Question
J'ai créé un webapp utilisant archétype maven2 dans NetBeans 6.7.
quand je fais construire plaine (enlever toute la configuration du plug-in), il copie tous les fichiers requis, y compris les dossiers « de _svn ». Mais je ne veux pas que ces fichiers, comment à partir du fichier * .war puis-je nettoyer _svn dossiers / fichiers et à partir du dossier cible éclatée qui contient le dossier « src / main / webapp » contenu de?
T E S T S
-------------------------------------------------------
Running com.project.project.taglib.SSTest
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.016 sec
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[war:war]
Packaging webapp
Assembling webapp[project-servlets] in
[C:\ROOT\1utils\project\project-servlets\trunk\target\project-servlets]
Processing war project
Copying webapp resources[C:\ROOT\1utils\project\project-servlets\trunk\src\main\webapp]
Webapp assembled in[735 msecs]
Building war: C:\ROOT\1utils\project\project-servlets\trunk\target\project-servlets.war
[install:install]
Installing C:\ROOT\1utils\project\project-servlets\trunk\target\project-servlets.war
to C:\LOCALREPO\.m2\com\project\project-servlets\1.0.0\project-servlets-1.0.0.war
J'ai réussi à utiliser le filtrage des ressources en pom.xml pour filtrer les fichiers _svn, tout ce qui fonctionne parfaitement si je crée un fichier jar. Mais avec la guerre, après la phase d'essai, il copie le « src / main / webapp » contenu du dossier ([guerre: guerre]), je ne peux pas sembler trouver un moyen de localiser les config / commande fait cela? est ce NetBeans? il est l'un des plug-ins que je utilise? Voici la section de construction de mon pom.xml, l'aide sera très appréciée !!
<project>
.. ...
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>_svn/**/*</exclude>
</excludes>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>_svn/**/*</exclude>
</excludes>
</testResource>
</testResources>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/project-servlets/WEB-INF</outputDirectory>
<resources>
<resource>
<directory>${basedir}/src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>_svn/**/*</exclude>
</excludes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<verbose>true</verbose>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
<finalName>project-servlets</finalName>
</build>
..
..
</project>
@Pascal Thivent - merci beaucoup pour la réponse. J'ai ajouté configuration « -plugin maven-guerre » et il a commencé à faire l'emballage deux fois !!
[war:war] Packaging webapp
Assembling webapp[project-servlets] in [C:\ROOT\1utils\frg\project-servlets\trunk\target\project-servlets]
Processing war project
Copying webapp resources[C:\ROOT\1utils\frg\project-servlets\trunk\src\main\webapp]
Webapp assembled in[391 msecs]
Building war: C:\ROOT\1utils\frg\project-servlets\trunk\target\project-servlets.war [war:war]
Packaging webapp
Assembling webapp[project-servlets] in [C:\ROOT\1utils\frg\project-servlets\trunk\target\project-servlets]
Dependency[Dependency {groupId=log4j, artifactId=log4j, version=1.2.8, type=jar}] has changed (was Dependency {groupId=log4j, artifactId=log4j, version=1.2.8, type=jar}).
Dependency[Dependency {groupId=com.frg, artifactId=project, version=1.1.7, type=jar}] has changed (was Dependency {groupId=com.frg, artifactId=project, version=1.1.7, type=jar}).
Dependency[Dependency {groupId=com.frg, artifactId=commons, version=1.0.3, type=jar}] has changed (was Dependency {groupId=com.frg, artifactId=commons, version=1.0.3, type=jar}).
Dependency[Dependency {groupId=net.sourceforge.jtds, artifactId=jtds, version=1.2.2, type=jar}] has changed (was Dependency {groupId=net.sourceforge.jtds, artifactId=jtds, version=1.2.2, type=jar}).
Processing war project
Le fichier pom a maintenant la configuration suivante ..
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<executions>
<execution>
<id>war</id>
<phase>package</phase>
<goals><goal>war</goal></goals>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp</directory>
<excludes>
<exclude>_svn/**/*</exclude>
<exclude>**/_svn/**</exclude>
</excludes>
</resource>
</webResources>
</configuration>
</execution>
</executions>
</plugin>
Et je vois encore les dossiers _ svn dans les fichiers de guerre !! Cependant, après avoir changé les dossiers _ svn à .svn dossiers, je ne l'ai pas besoin même aucun filtrage des ressources !! Il ignore automatiquement les dossiers « .svn ». Je pense qu'il devrait y avoir un endroit pour régler les paramètres de la préférence de « .svn » à « _svn ». Quoi qu'il en soit, cela ne résout mon problème initial, mais introduit un problème d'incompatibilité avec mes arrière anciens projets versionnés .NET ..:)
La solution
(EDIT:. Ma réponse initiale proposait d'utiliser du excludes
dans webResources
ce qui est inexact je fournir ci-dessous une configuration mise à jour du maven-guerre-plugin qui exclut vraiment _svn
comme demandé par l'OP. Cela a été testé et fonctionne.)
...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warSourceExcludes>
**/_svn/**
</warSourceExcludes>
</configuration>
</plugin>
...
</plugins>
Mais, Je vous suggère vivement de configurer votre client de tortue utiliser .svn
au lieu de _svn
. Je ne trouve pas la référence, mais je crois que maven utilise quelque chose d'équivalent à <exclude>**/.svn</exclude>
interne. Je doute au sujet de la déclaration précédente. Cependant, le fait est que l'utilisation .svn
vous permet d'éviter toute configuration supplémentaire et rend donc les choses beaucoup plus simple.
Autres conseils
Ce m'a été utile, avec une correction:
la balise est <packagingExcludes>
(Dans la version 2.1 alpha-1, cela a été mal nommé warSourceExcludes.)
source: http: //maven.apache. org / plugins / maven-war-plugin / examples / maigre-wars.html