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?
Wie kann ich ein? – Amumu
Kopieren Sie die Konfigurationsdatei in die Datei classes.dir, bevor Sie die JAR-Datei generieren. Auf diese Weise befindet sie sich im Jar. –
Yay! Es klappt! Vielen Dank, Mr.Aaron. Ich bin so glücklich jetzt. – Amumu