Test classlarının Application servera deploy edilmesini engellemek
Siz aksini belirtmediğiniz sürece Eclipse’in WTP toolu, EJB projenizin içindeki JUnit test classlarını sunucuya deploy eder.
Hatta test classlarının yanısıra başka test resourcelarınız var ise, jndi.properties, persistence.xml vs. gibi bu resourcelarda otomatik olarak containera deploy edilir. Geliştirme sürecinde göz ardı etseniz de bazen bu resourcelar problem yaratabilirler.
Bunu engellemenin iki yolu var.
Projenizin dizinindeki .settings/org.eclipse.wst.common.component dosyasını text editör ile açın. Test folderları gözünüze hemen çarpacaktır, o satırları silmeniz yeterli.
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="my-ejb">
<wb-resource deploy-path="/" source-path="/src/main/resources"/>
<wb-resource deploy-path="/" source-path="/src/main/java"/>
<wb-resource deploy-path="/" source-path="/src/test/resources"/> <!--Deploy etmek istemediğiniz bir folder, dolayısıyla bu line silinmeli-->
<wb-resource deploy-path="/" source-path="/src/test/java"/><!--Silinecek-->
<property name="java-output-path"/>
</wb-module>
</project-modules>
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="my-ejb">
<wb-resource deploy-path="/" source-path="/src/main/resources"/>
<wb-resource deploy-path="/" source-path="/src/main/java"/>
<property name="java-output-path"/>
</wb-module>
</project-modules>
Diğer bir yöntem de bu folderları class path den çıkarmak. Test resourcelarınızı project properties/Java build path/Source kısmından exclude edebilirsiniz.
Her iki yöntem için de test resoucelarınızın ayrı bir folder içinde olmaları gerekir. Project context menüsünden New/Source Folder komutu ile ayrı bir source folderı açarak, test resourcelarınızı buraya atabilirsiniz.
Kolay gelsin.