2015-02-13 22 views
33

"montaj açıklayıcı bir dosya sistemi kök göreli başvuru içeriyor":Maven montaj eklentisi uyarı konuyu aşağıdaki uyarıyı oluşturur bazı montaj eklentisi sürümü maven başlayarak

[UYARI] montaj açıklayıcısı bir dosya sistemi kök göreli içeriyor başvuru, çapraz platform uyumlu değil/

Bunun için önerilen kullanıma hazır bir çözüm var mı? Doğrudan googling bana çok fazla çöp ve gerçek yardım sağlamadı. Maven montaj eklentisi yardımının tekrar kontrol edilmesi bana cevap vermedi, belki başkası daha iyi bir arama becerisine sahip ve yardımcı olabilir.

GÜNCELLEME

Evet, bu muhtemelen çünkü Linux benzeri outputDirectory ait ama nasıl bu taşınabilir olması yazarsın bundan mı? Montaj eklentisi belgelerine bakıldı ve herhangi bir taşınabilirlik rehberi bulunamadı. Boş outputDirectory eleman eserlerini kullanma

<fileSets> 
    <fileSet> 
     <directory>${basedir}/src/main/resources</directory> 
     <outputDirectory></outputDirectory> 
    </fileSet> 
</fileSets> 
+0

Eğer montaj tanımlayıcısı gösterebilir misin? Muhtemelen bir şekilde bir ortamın (_/a/b/c_) mutlak yoluna başvurduğunuzu gösterecektir. Bu, ortamlar arasında taşınabilirlik oluşturulmasını sağlamaktan kaçınacak bir şeydir – Tome

+0

Evet, bu, içeremeyen bir tar dosyası oluşturuyorsanız geçerlidir. Bir dosya sistemi-root girişi ... hangi btw. gerçekten anlam ifade etmiyor. – khmarbaise

+1

Çıktı Dizinini görebildiğiniz gibi, sonuç olarak tüm contens'leri her zaman aynı konuma çıkartmak anlamına gelen bir '/' tanımlar. Bunun dışında bu konum kök hesapla sınırlıdır. Ayrıca, 'src/main/resources' klasörünü almak için' fileSets 'kullanmanızın nedenleri de sorudur. Bunun özel sebebi? – khmarbaise

cevap

46

çalışma solüsyonu boş outputDirectory belirtmektir.

Yani, daha açık olması için, ayrıca yazılı uyarıyı önlemek olabilir: bu sadece / yanında başka yerlerde başına gelebilecek

<outputDirectory>${file.separator}</outputDirectory> 
+2

Her zaman boş bırakmak değil, ayarlanması gerekiyorsa ne yapılmalı? – scrapcodes

+3

Burada bir dizin belirtmek isterseniz o zaman yapın - bu yüzden bu parametre zaten burada. Sadece "/" ile başlayan mutlak yollardan kaçının. – Torsten

+2

Veya kendiliğinden kapatılan ' – naXa

21

ama biri güvenle silinebilir kabul eğer sürpriz olmaz:

<fileSets> 
    <fileSet> 
     <directory>${basedir}/src/main/resources</directory> 
     <outputDirectory>/</outputDirectory> 
    </fileSet> 
</fileSets> 
+0

IMO bu, yalnızca/ama aynı zamanda/foo/bar için değil, herhangi bir yol için çalıştığı için en iyi yaklaşımdır. –

+0

Dosya içinse nasıl çalıştığımı detaylandırır mısınız? hem * nix platformları ve windows platformu? – vivekmore

3

Not. Yukarıdaki cevaplar doğrudur, ancak bu vakayı kapsamaz. Buna

<fileSets> 
    <fileSet> 
     <directory>${basedir}/src/main/resources</directory> 
     <outputDirectory>/lib</outputDirectory>   <!-- <<< look for this --> 
    </fileSet> 
</fileSets> 

ve değiştirin:: En assembly.xml içinde böyle bir şey için

Bak

<fileSets> 
    <fileSet> 
     <directory>${basedir}/src/main/resources</directory> 
     <outputDirectory>lib</outputDirectory> 
    </fileSet> 
</fileSets> 
İlgili konular