2010-12-06 5 views
0

Ich verwendet, um automatisch mit NetBean IDE zu erstellen und auszuführen. Es funktioniert gut mit Frühling. Jetzt möchte ich jedoch meine eigene Ant-Build-Datei schreiben. Es wird erfolgreich erstellt, das einzige Problem ist, dass der ClassPathXmlApplicationContext so aussieht, als könnte er den Klassenpfad zur Laufzeit nicht finden. Ich bin mit Spring 3.0.5 mit den folgenden Bibliotheken in lib Ordner abgelegt:Spring ist ein Fehler mit Ant-Build-Datei

org.springframework.beans-3.0.5.RELEASE.jar 
org.springframework.beans-sources-3.0.5.RELEASE.jar 
org.springframework.context.support-sources-3.0.5.RELEASE.jar 
org.springframework.context-3.0.5.RELEASE.jar 
org.springframework.context-sources-3.0.5.RELEASE.jar 
org.springframework.core-3.0.5.RELEASE.jar 
org.springframework.core-sources-3.0.5.RELEASE.jar 

die Ordnerstruktur:

DevFortress

+ --- lib

+ - --src

+ config 

    +....... 

+ --- bauen

+----classes 

    +----jar 

Ich möchte einen Zusammenhang von meinem devFortress.xml bekommen: Application Kontext = new ClassPathXmlApplicationContext ("DevFortress.xml"); Ursprünglich befindet sich die DevFortress.xml im Konfigurationspaket im src-Paket. Allerdings möchte ich nur mein Programm laufen lassen, also lege ich es in den lib-Ordner, Klassen und Jar, aber es ist hoffnungslos.

Hier ist meine Build-Datei:

<project name="DevFortress" basedir="." default="main"> 
    <property name="src.dir" value="src"/> 
    <property name="config.dir" value="${src.dir}/config"/> 
    <property name="build.dir" value="build"/> 
    <property name="classes.dir" value="${build.dir}/classes"/> 
    <property name="jar.dir" value="${build.dir}/jar"/> 

    <property name="main-class" value="Controller.Main"/> 

    <property name="lib.dir" value="lib"/> 

    <path id="classpath"> 
     <fileset dir="${lib.dir}" includes="**/*.jar"/> 
     <fileset dir="${config.dir}" includes="**/*.xml"/> 
    </path> 
    <target name="clean"> 
     <delete dir="${build.dir}"/> 
    </target> 

<target name="compile"> 
    <mkdir dir="${classes.dir}"/> 
    <javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/> 
</target> 

<target name="jar" depends="compile"> 
    <mkdir dir="${jar.dir}"/> 
    <jar destfile = "${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}"> 
     <manifest> 
      <attribute name="Main-Class" value="${main-class}"/> 
     </manifest> 
    </jar> 
</target> 

<target name="run" depends = "jar"> 
    <java fork="true" classname="${main-class}"> 
      <classpath> 
       <path refid="classpath"/> 
       <path location="${jar.dir}/${ant.project.name}.jar"/> 
      </classpath> 
     </java> 
</target> 

<target name="clean-build" depends="clean,jar"/> 

<target name="main" depends="clean,run"/> 
</project> 

Was mit diesem falsch?

Antwort

0

haben Sie

+0

Wie kann ich ein? – Amumu

+0

Kopieren Sie die Konfigurationsdatei in die Datei classes.dir, bevor Sie die JAR-Datei generieren. Auf diese Weise befindet sie sich im Jar. –

+0

Yay! Es klappt! Vielen Dank, Mr.Aaron. Ich bin so glücklich jetzt. – Amumu

0

Auch mein XML-Schema in Spring-XML-Datei nur mit den Konfigurationsdateien in das Glas Erstellungsprozess versucht:

<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:aop="http://www.springframework.org/schema/aop" 
     xmlns:context="http://www.springframework.org/schema/context" 

     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 
      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.6.SEC01.xsd 
      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.6.SEC01.xsd"/>