2013-07-17 15 views
8

Eclipse Kepler'da yeni bir Dinamik Web Projesi oluşturdum ve IvyDE'yi ilk defa kullanıyorum, test etmek için bazı bağımlılıklar yapıyorum. İşte benim ivy.xml geçerli:Eclipse ve IvyDE uyarısı: Classpath Dependency Validator Message

<ivy-module version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd"> 
    <info 
     organisation="net.myorg" 
     module="mymodule" 
     status="integration"> 
    </info> 
    <dependencies> 
     <dependency org="org.hibernate" name="hibernate-entitymanager" rev="4.2.3.Final"></dependency> 
     <dependency name="log4j" rev="1.2.17" org="log4j"></dependency> 
    </dependencies> 
</ivy-module> 

çözüldü ve ben proje kütüphanelerde bunları görebilirsiniz bağımlılıkları. Yani

Description Resource Path Location Type 
Classpath entry org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=myproject&ivyXmlPath=ivy.xml&confs=*&acceptedTypes=jar%2Cbundle%2Cejb%2Cmaven-plugin&alphaOrder=false&resolveInWorkspace=true&retrievedClasspath=true&retrievedClasspathPattern=lib%2F%5Btype%5Ds%2F%5Bartifact%5D-%5Brevision%5D.%5Bext%5D&retrievedClasspathSync=true&retrievedClasspathTypes=* will not be exported or published. Runtime ClassNotFoundExceptions may result.  myproject  P/myproject Classpath Dependency Validator Message 

Ben doğru anlama ediyorsam, Eclipse sınıf yolunda IvyDE girişi yaşayacakları bir kaynağa karşılık gelmez bana uyarı:

Ama bundan sonra

, benim proje bu uyarıyı vermeye başladı inşa edilen projede olmak. Sanırım beklenen davranış budur, eğer öyleyse, bu uyarıyı her bir Classpath Dependency Validator Message'u devre dışı bırakmadan projeden kaldırmanın bir yolu var mı?

cevap

18

Uyarı iletisinin nedeni, Eclipse esnek proje dağıtım mekanizmasının Ivy kabı tarafından başvurulan kitaplıkları dağıtıp dağıtmayacağını bilmemesidir. Bu yüzden, hangisini yapmak istediğinizi açıkça belirtmeniz, kavanozları WEB-INF/lib'e dağıtmanız veya kullanmamanız gerekir.

yapmanız gerekiyorsa Eğer ihtiyacı WEB-INF dağıtılan bu konteyner/lib:

  1. sağ tıklayın proje özelliklerine gidip
  2. Seç Dağıtım Montaj
  3. tıklayın ekle
  4. Seç " Java yol yolu girişleri "
  5. Sarma kapsayıcısını seçin
  6. Son'u tıklatın
  7. emin dağıtın Yolu

Deployment Assembly setting

ayarların Bunu görmek Dosya .classpath içine bakarsak böyle bir giriş ekler "lib WEB-INF /" olarak ayarlanmış olduğundan emin olun:

<classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=ivy-test-portlet&amp;ivyXmlPath=ivy.xml&amp;confs=*&amp;ivySettingsPath=%24%7Bliferay_sdk_dir%3Aivy-test-portlet%7D%2Fivy-settings.xml&amp;loadSettingsOnDemand=false&amp;ivyUserDir=%24%7Bliferay_sdk_dir%3Aivy-test-portlet%7D%2F.ivy&amp;propertyFiles="> 
    <attributes> 
     <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> 
    </attributes> 
</classpathentry> 

<attributes>...</attributes> öğesinin eklendiğine dikkat edin. Ayrıca benim Ivy konteyner yolum sizinkilerden farklı olacak, çünkü bu benim kendi projelerimden biri için bir Ivy konteyner yolu. Eğer çalışma zamanı Ivy konteyner içinde bulunan bu kütüphaneler dağıtmak için gerekmez eğer

Şimdi, o zaman zamanında bu kütüphaneler üzerinde hiçbir bağımlılık olduğunu Eclipse söylemek gerekir. .classpath dosyasına uygun nitelikleri ekleyerek bunu yapabilirsiniz.

  1. Açık .classpath dosyası
  2. Sarmaşık konteyner Manuel
  3. son öğesi şöyle bir şey olacaktır

classpathentry alt öğesi olarak aşağıdaki nitelikler eleman eklemek için girişi bulun .Kişisel yolu farklı seçeneğe sahip olacak ama önemli bir parçası nitelikleri çocuk öğesidir: Seçtiğiniz

<classpathentry kind="con" path="org.apache.ivyde.eclipse.cpcontainer.IVYDE_CONTAINER/?project=ivy-test-portlet&amp;ivyXmlPath=ivy.xml&amp;confs=*&amp;ivySettingsPath=%24%7Bliferay_sdk_dir%3Aivy-test-portlet%7D%2Fivy-settings.xml&amp;loadSettingsOnDemand=false&amp;ivyUserDir=%24%7Bliferay_sdk_dir%3Aivy-test-portlet%7D%2F.ivy&amp;propertyFiles="> 
    <attributes> 
     <attribute name="org.eclipse.jst.component.nondependency" value=""/> 
    </attributes> 
</classpathentry> 

İkisi de olsa açıkça nasıl dağıtım sırasında bu kütüphane konteyner bağımlılığını ele Eclipse söylediler. Artık projeyi yeniden doğrulayabilirsiniz (sağ tıklama projesi ve "Doğrulama" yı seçin) ve hatanın gitmesini görmelisiniz.

+1

Eclipse'in "Hızlı Onarım" aracının otomatik olarak tanımladığınız her iki yordamı da gerçekleştirebileceğini unutmayın. – Phlibbo

+0

Uyarı devam ederse ne yapmalıyım? Deploy Path öğesinin ** WEB-INF/lib ** ve .classpath öğesinin classpathentry olarak ayarlandığını kontrol ettim: \t \t \t \t \t \t \t \t ' – tonix