2013-06-22 40 views
20

Çözemediğim basit bir maven problemim var. Benim POM Böyle bir openrdf-Susam bağımlılığı belirttiniz: iyi çalışıyor Tutulma projeyi RunningMaven derlemesi: paket mevcut değil

<dependency> 
    <groupId>org.openrdf.sesame</groupId> 
    <artifactId>sesame-runtime</artifactId> 
    <version>2.7.2</version> 
</dependency> 

, ben bile bir çalıştırılabilir jar dosyasını dışa aktarabilir. Maalesef, cmd-line maven ile düzgün çalışmasını sağlayamıyorum. bir kavanoz oluşturmak için, benim pom için aşağıdaki ekledik:

derleme aşağıdaki hatayla başarısız
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <configuration> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
       <archive> 
        <manifest> 
         <mainClass>foo.bar.Cli</mainClass> 
        </manifest> 
       </archive> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

: en kısa sürede pom için derleme eklentisini olarak Garip

.../PLDReducer.java:[25,29] package org.openrdf.rio.rdfxml does not exist 
.../PLDReducer.java:[27,33] package org.openrdf.sail.nativerdf does not exist 
.../LowPLDReducer.java:[25,29] package org.openrdf.rio.rdfxml does not exist 
.../Cli.java:[23,33] package org.openrdf.sail.nativerdf does not exist 
.../SchemaBuilder.java:[30,33] package org.openrdf.sail.nativerdf does not exist 
.../RepoQuerier.java:[23,33] package org.openrdf.sail.nativerdf does not exist 
.../PLDReducer.java:[78,44] cannot find symbol 

, ve proje ayarlarını güncelleyin, tutulma artık derlenemiyor gibi görünüyor. Depomu kontrol ettim ve tüm susam dosyaları orada.

mvn version bu çıktıyı verir:

Apache Maven 2.2.1 (rdebian-8) 
Java version: 1.6.0_27 
Java home: /usr/lib/jvm/java-6-openjdk-amd64/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "linux" version: "3.8.0-25-generic" arch: "amd64" Family: "unix" 

Ben bir jre işaret gibi görünüyor gördüm ancak googling derleyici kendisi bulunmazsa, başka bir hatayı görürdünüz belirtti. Herhangi bir yardım varsa pasted the complete POM here var.

Eksik olduğum bir şey var mı? POM'umda herhangi bir hata bulamıyorum.

<dependency> 
    <groupId>org.openrdf.sesame</groupId> 
    <artifactId>sesame-rio-api</artifactId> 
    <version>2.7.2</version> 
</dependency> 

Ayrıca ben dosya bozulması ya da ne varsa emin değilim ama sonra değil documentation about how to use the lib.

+0

'mvn clean paketinin tam çıktısını gösterebilir misiniz? – khmarbaise

+0

[Burada -e anahtarıyla] (http://pastebin.com/zg24L8rS) ve [Burada -X anahtarıyla] (http://pastebin.com/A5G613LL) – feob

+0

Paket isimlerini kullanıyorsunuz olmayan ithalat bölümünüzde). Gerçekten de paketlere ihtiyacın var mı? Ondan ders almak mı? İçe aktarma kısmını IDE (Eclipse? Gibi) ile temizlediniz mi? PLDReducer.java' gibi kaynak kod dosyalarından birini gösterebilir misiniz? – khmarbaise

cevap

7

Sen yapı için aşağıdaki bağımlılık eklemek zorunda Uygun pompa yapılandırmasını onaylama Bu sorunu, yerel m2 deposumdan silerek ve Maven'in testleri yeniden başlattığımda yeniden yüklemesini zorlayarak çözebiliyordum.

+0

Teşekkürler, bu aslında hile yaptı! Ancak bu ek modül gerekiyorsa, projenin tutulması ve tutulmadan nasıl geçmesi mümkün olabilir? Lib klasöründe veya benzeri herhangi bir kavanoz yok. Ayrıca, bağlantılı belge harika görünüyor, ben bununla henüz karşılaşmadım! – feob

+11

Eksik paketler çalışma zamanı bağımlılıklarıdır; bu nedenle komut satırından derleme başarısız olur. Ancak, Maven Eclipse eklentisi kapsam belirleme kurallarını göz ardı etme eğilimindedir ve her bağımlılığı çeker, bu yüzden Eclipse'den derleme sorunsuz çalışır. –

+0

Hangi kapsamı tanımladınız? – khmarbaise

0

içine derin bir göz atmak öneririm:

3

Bağımlılığınıza bir <scope> etiketi eklemezsiniz.

<dependency> 
    <groupId>org.openrdf.sesame</groupId> 
    <artifactId>sesame-runtime</artifactId> 
    <version>2.7.2</version> 
    <scope> ... </scope> 
</dependency> 

"kapsam" etiketi sizin bağımlılık gereklidir yapı hangi aşamalarında maven söyler: Eğer eklerseniz, bağımlılık gibi bir şey olur. İçine yerleştirilecek değerler için "test", "sağlanan" veya "çalışma zamanı" örnekleri (pomanızdaki alıntıları atlayın). Bağımlılığınızı bilmiyorum, bu yüzden hangi değeri seçeceğinizi söyleyemem. Lütfen Maven belgelerine ve bağımlılığınızın belgelerine bakın.

+0

sadece aynı sorunu yaşadı ve hepsini bir arada kaldırdım ve projeyi başarıyla oluşturdu. –