Zugriff auf Dateien im Ressourcenverzeichnis mit Maven (mit Eclipse IDE) nicht möglich
Ich habe ein problem für ein paar Stunden, und ich habe versucht, alle Lösungen, die ich gefunden habe auf tutorials.
Es ist ganz einfach: ich kann nicht auf die Ressource-Dateien. Ich versuche, eine Datei zu öffnen ich habe in src/main/resources
und src/test/resources
.
Ich habe ein einfaches Java-Projekt und ich verwende Maven, Eclipse als IDE, mit dem m2e plugin.
Ich möchte an Ressourcen-Filterung mit Maven, mit unterschiedlichen Profilen, und es ist meine POM.xml
:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
<debug>false</debug>
<optimize>true</optimize>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.4</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
<filters>
<filter>src/main/filters/${env}.properties</filter>
</filters>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
<profiles>
<profile>
<id>LOCAL</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<env>local</env>
</properties>
</profile>
</profiles>
Gemacht und ich einen einfachen test, in src/java/test :
@Test
public void testOpenResourceFile() {
File testf=new File("/test.txt");
assertTrue(testf.exists());
}
So, in Eclipse, die ich laufen (auf meinem Projekt-Ordner, in das Paket view) :
- Ausführen als > Maven-build - > Prozess-Ressourcen
- Ausführen als > Maven-build - > Prozess-test-Ressourcen
- Ausführen als > Maven-build - > kompilieren
Mit " env: LOKALE
In dem test, ich tun: Laufen als > Junit Test Case.
Aber es scheitern...
Ich sah in target/test-classes-Verzeichnis generiert Maven, und die Datei test.txt ist es.
Habe ich verpasst, einige Schritte bei meinem Projekt compilation, oder ist es ein problem mit meiner Konfiguration?
EDIT:
Ich habe versucht, mit File("test.txt")
und File("../test.txt")
als gut.
InformationsquelleAutor der Frage Iraes | 2013-11-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht es für mich so, dein problem ist
Ist auf der Suche nach einer Datei namens
test.txt
im Stammverzeichnis Ihres Computers das Dateisystem. Was Sie wollen, ist die Wurzel der Ressource Baum, der Sie mit demgetResource
Methode:Oder, im statischen Kontext verwenden, der name der enthaltenden Klasse:
Natürlich müssen Sie zum hinzufügen von Fehlerbehandlung, Beispiel.
InformationsquelleAutor der Antwort Sam Hanes
Ich hatte das gleiche problem, so stellen Sie sicher, dass die "text.txt" Datei in den resources-Ordner des test-Projekt (src/test/resources/text.txt) und nicht in irgendeinem anderen Ordner Ressourcen.
Auch, sollten Sie rufen Sie die Datei aus den resources-Ordner wie diesem:
Wenn dies immer noch nicht funktioniert, dann versuchen, die
useSystemClassLoader
von dermaven-surefire-plugin
auf false in Ihrempom.xml
.http://maven.apache.org/surefire/maven-surefire-plugin/examples/class-loading.html
InformationsquelleAutor der Antwort Marco
Überprüfen Sie Ihre
<build>
tag in pom.xml es sollte so etwas wie dieses, vor dem gleichen Problem und fügen Sie diese<resources>
tag in der<build>
für mich gearbeitet.InformationsquelleAutor der Antwort Vandit Upadhyay
Ich diese Methode für diesen job:
InformationsquelleAutor der Antwort Abhimanyu Shekhawat