# Merkwürdiges Verhalten von Eclipse



## HeMan (23. Sep 2010)

Wenn ich in einem meiner Projekte eine Java-Quelle ändere und speicher bekomme ich lauter Compilerfehler.
Er findet dann anscheinend alle Imports, die in meinen eigenen Packages liegen nicht mehr: The import mypackage.xy cannot be resolved.
Wenn ich dann irgendeine Lib aus dem Build Path remove und wieder einfüge sind die Fehler wieder weg.
Kann mir das jemand erklären?


----------



## Gast2 (23. Sep 2010)

Probier mal: Menu Project > Clean


----------



## HeMan (23. Sep 2010)

Danke für den Tip. Mit dem Clean spare ich mir das löschen und wieder einfügen einer Lib wenn die Fehler aufgetaucht sind. 
Dann ist erstmal wieder alles in Ordnung, bis zum nächsten Ant-Build.
Wenn ich einen Ant-Build durchführe und dann wieder eine Quelle ändere und speichere tritt das Problem erneut auf und ich muss wieder einen Clean machen. 
Ich benutzte übrigens Eclipse 3.4.2


----------



## Gast2 (23. Sep 2010)

Wie sieht den deine build.xml aus?


----------



## HeMan (23. Sep 2010)

Hier ein Ausschnitt meiner build.xml:

<project name="myProject" default="build.war" basedir=".">
  	<property file="build.properties"/>        
  	<property name="projectname" 			value="myProject" />
  	<property name="src" 					value="${eclipse}" />
  	<property name="build" 					value="${src}/build" />
	<property name="target"		 			value="${jboss}" />

	<property name="commons-beanutils" 		value="${src}/lib/commons-beanutils-1.7.0.jar" />
	...

  	<path id="classpath">
  		<pathelement location="${commons-beanutils}"/>
    	        ...
  	</path>

  	<target name="prepare">
    	  <mkdir dir="${build}/WEB-INF" />
    	  <mkdir dir="${build}/WEB-INF/classes" />
    	   <mkdir dir="${build}/WEB-INF/lib" />
  	</target>

  	<target name="build" depends="prepare">
    	<javac srcdir="${src}/src" destdir="${build}/WEB-INF/classes" debug="true" debuglevel="lines,vars,source" compiler="javac1.5">
    		<include name="**/*.java" />
     		<classpath refid="classpath"/>
    	</javac>

    	<copy todir="${build}/">
      		<fileset dir="${src}/web">
        		<include name="*.html" />
        		<include name="*.gif" />
        		<include name="*.jpg" />
        		<include name="*.jsp" />
        		<include name="*.xml" />
        		<include name="*.reg" />
      		</fileset>
    	</copy>

  		<copy todir="${build}/WEB-INF"><fileset dir="${src}/web/WEB-INF" /></copy>
  		<copy todir="${build}/WEB-INF/classes/..."><fileset dir="${src}/src/..." /></copy>
  		<copy todir="${build}/WEB-INF/lib"><fileset dir="${src}/lib"/></copy>
  		...
  	</target>	 

  	<target name="build.war" depends="build">
    	<jar jarfile="${target}/server/default/deploy/${projectname}.war" basedir="${build}"/>
  		<delete dir="${build}" />
  	</target>
</project>


----------



## fastjack (23. Sep 2010)

Falls Du im build in einem Verzeichnis kompilierte Klassen löschst, und Eclipse ebenfalls dort hineinkompiliert (auto build lala), bekommst Du ebenfalls Probleme und mußt ständig cleanen.


----------



## HeMan (23. Sep 2010)

Klingt logisch. Ich habe jetzt das <delete dir="${build}" /> am Ende gelöscht und die Probleme scheinen nicht mehr aufzutreten. Vielen Dank


----------



## fastjack (23. Sep 2010)

Du musst allerdings aufpassen, wenn Du den Eclipse-Kompilaten vertraust. Bei fehlerhaften Klassen ist nämlich immer noch eine alte .class Datei im bin-Ordner. Wenn Du fleißig baust und nicht immer die Eclipse-Fehler im Auge behälst, fällt Dir das eventuell erst sehr spät auf.


----------

