2017-06-04 4 views
1

Ich bin neu in Frühling und Maven. Ich versuche, eine Feder-App mit Maven Archetypen zu bauen. Also habe ich das Projekt mit maven pom.xml eingerichtet. Alle Dinge funktionieren gut, aber das einzige Problem ist mein IDE (Netbeans) ist mein spring.xml im Classpath nicht einschließlich. Daher schlägt der Build mit der Ausnahme "Datei nicht gefunden" fehl. Ich muss speziell den vollständig qualifizierten Pfad der spring.xml angeben, damit das funktioniert.So fügen Sie Ressourcen in Maven Classpath

So die unten nicht - AbstractApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");

Wenn ich es ändern, wie unten es funktioniert -

AbstractApplicationContext context = new ClassPathXmlApplicationContext("file:///Users/shoukat/NetBeansProjects/csm/src/main/java/spring.xml"); 

Ich finde, dass dies geschieht, weil mein Classpath enthält nicht die main/java. Dies sind die Ergebnisse, wenn ich versuche, den Classloader URLs drucken unter Verwendung der unten code-

 ClassLoader sysClassLoader = ClassLoader.getSystemClassLoader(); 

     //Get the URLs 
     URL[] urls = ((URLClassLoader)sysClassLoader).getURLs(); 

     for(int i=0; i< urls.length; i++) 
     { 
      System.out.println(urls[i].getFile()); 
     } 

Ergebnis -

/Users/shoukat/NetBeansProjects/csm/target/classes/ 
/Users/shoukat/.m2/repository/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar 
/Users/shoukat/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar 
/Users/shoukat/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.5/jcl-over-slf4j-1.7.5.jar 
/Users/shoukat/.m2/repository/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar 
/Users/shoukat/.m2/repository/org/springframework/spring-context/4.0.0.RELEASE/spring-context-4.0.0.RELEASE.jar 
/Users/shoukat/.m2/repository/org/springframework/spring-aop/4.0.0.RELEASE/spring-aop-4.0.0.RELEASE.jar 
/Users/shoukat/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar 
/Users/shoukat/.m2/repository/org/springframework/spring-beans/4.0.0.RELEASE/spring-beans-4.0.0.RELEASE.jar 
/Users/shoukat/.m2/repository/org/springframework/spring-core/4.0.0.RELEASE/spring-core-4.0.0.RELEASE.jar 

Idealer dies sollte auch das src-Verzeichnis enthält, wie ich meine Ressourcen Frühling am Putten .xml-Datei drin. Was muss ich so das/Hauptverzeichnis meine src ändern in Classpath enthalten ist, und ich muss mein Programm nicht hart codieren mit dem vollqualifizierten Systempfad meiner spring.xml-Datei?

Dank

Antwort

2

Wenn ClassPathXmlApplicationContext Suche spring.xml in Ihrem Classpath aber Maven verwenden, wenn die Kompilierung Ressourcen wie * .xml in src/main/java

Dafür setzen ignorieren arbeiten Sie die Ressource-Ordner und die Ordner erstellen haben Baum ist wie:

src/main/java/.. 
src/main/resources/spring.xml 

Dann können Sie verwenden:

AbstractApplicationContext context = new ClassPathXmlApplicationContext ("spring.xml");

Maven - Introduction to the Standard Directory Layout

Verwandte Themen