Comment créer un nouveau répertoire dans le dossier cible avec Maven
Je suis en train d'écrire une bibliothèque qui permettra de créer un rapport basé sur les résultats du test (imaginez quelque chose comme Infaillible). Et mon problème c'est que je suis capable de créer un dossier dans target/
répertoire pour conserver le rapport et copie les fichiers nécessaires, mais je peux le faire seulement quand j'ai créer le projet de bibliothèque elle-même.
J'aimerais réaliser même comportement comme un plugin Surefire a, cela signifie que si j'ai mis la dépendance de ma bibliothèque à un projet, disons myProject
, alors je vais obtenir quelque chose comme myProject/target/myLibrary
après la construction.
btw, c'est ce que j'ai actuellement
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>generate-test-sources</phase>
<configuration>
<tasks>
<echo message="Creating folder for the lib..." />
<mkdir dir="${report.folder}" />
<echo message="Copying Twitter Bootstrap libraries to the ${report.folder}" />
<copy todir="${report.folder}">
<fileset dir="src/main/resources/bootstrap">
<include name="**/**" />
</fileset>
</copy>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
Et aussi question bonus, est-il une variable pour src/main/resources
?
Je l'ai fait mais je n'ai pas trouvé quelque chose d'utile
Je pense que le terme "bibliothèque" est source de confusion ici, puisque vous ne pouvez pas exécuter une bibliothèque, mais c'est utilisé par quelque chose. Comment voulez-vous exécuter ce morceau de code? Comme un exécutable jar? Comment pouvez-vous aller maintenant?
Ça va être une extension du framework de test Arquillian. Il n'y a SPI qui est similaire à la CDI, donc le code est exécuté par l'écoute d'événements à partir de ce SPI. Donc, il y a un événement ouvert le feu sur un conteneur de démarrage et je voudrais copier ces fichiers lors de cet événement
Donc, si vous incluez la dépendance à mon poste et exécuter les tests, le code sera exécuté automatiquement
OriginalL'auteur Petr Mensik | 2013-09-05
Vous devez vous connecter pour publier un commentaire.
Ok, donc j'ai trouvé la solution qui consiste à utiliser l'
getResourceAsStream()
méthode.OriginalL'auteur Petr Mensik
Dans votre bibliothèque, il suffit de vérifier si le
target
répertoire (et/ou quel que soit le sous-répertoire qui vous intéresse) existe. Si ce n'est pas juste utiliserFile.mkdirs(...)
et de créer. C'est ce que l'maven-surefire-plugin
est en train de faire.FileUtils.copyDirectoryToDirectory(new File("src/main/resources/bootstrap"), new File("target/myLibrary")
alors j'auraiFileNotFoundException
- bootstrap n'existe pas dans le projet qui est à l'aide de la bibliothèqueEh bien, évidemment, vous devez d'abord vérifier si le
target
répertoire existe et de le créer, s'il ne le fait pas. Ensuite, vous pouvez effectuer la copie à l'aide de la méthode choisie à partir de laFileUtils
classe. Ceci devrait faire l'affaire.Oui, mais ce répertoire existe certainement parce que je exécuter
new File("target/myLibrary").mkdir();
commande avant celui-ci. Donc je suppose que le problème est quesrc/main/resources/bootstrap
n'est pas sur le chemin de la classe pour le moment.OriginalL'auteur carlspring