2016-04-12 16 views
0

IntelliJ'i maven ile birlikte kullanıyorum. logback.groovy ve bazı özellik dosyaları gibi şeyleri içeren harici bir yapılandırma klasörü (yani, kavanozda bulunmayan) oluşturmak istiyorum. Bu klasör maven tarafından sınıf yoluna eklenir (maven-jar-plugin yoluyla, bkz. Maven - how can I add an arbitrary classpath entry to a jar?). Ancak projeyi IntelliJ içinden çalıştırırsam, bu sınıf yolu girdisi eklenmez ve ilgili klasördeki içerik bulunamadı. Klasörü çalışma zamanı modülü bağımlılığı olarak eklemek sorunu giderir, ancak çok temiz görünmez. Maven'i Intellip run'a eklediği gibi classpath girişlerini de ekleyebileceğim herhangi bir yol var mı? Bu mümkün değilse, bağımlılıklara başvurmadan bir şekilde bir sınıf yolu girişi yapabilir miyim? Tutulmada, çalıştırma yapılandırmasına isteğe bağlı sınıf yolu girişleri ekleyebilirim, eminim ki IntelliJ'de bir kaç menüyü kaçırırım.Maven ile IntelliJ: Kaynakları kopyalamaksızın sınıf yolu girişi ekle

Klasörün kaynağı olarak işaretlendiğini (maven veya IntelliJ'de), klasör içeriği target/classes'a kopyalanıp jar içine eklendiğinde bir seçenek olmadığını unutmayın.

DÜZENLEME: Ayrı bir klasörün nedeninin mantığı: Dış kitaplıklar (örneğin, günlüğe kaydetme gibi), bağımlılıklarını (anladığım kadarıyla) çok fazla müdahale olasılığı olmadan doğrudan sınıf yolundan yükler. Çok fazla konfigürasyon dosyası yerleştirmekten hoşnut değilim ve bunun yerine mümkün olduğunca merkezileştirilmesini istiyorum.

Takip eden soru: Sınıf yolu kavramını yanlış mı kullanıyorum?

cevap

1

Ben senin yapılandırma neye benzediğini emin değilim, ama aşağıdakilerden birini deneyebilirsiniz:

  1. Sen Run Configuration > JDK Settings > VM Options yılında -cp bayrak aracılığıyla sınıf yolunu güncelleyebilirsiniz. Burada env değişkenlerini kullanmasına izin verilmiyor gibi görünüyor, bu da bu şekilde çok zor: fikir koşucusu için hem cp hem de cp girişlerinizi sağlamanız gerekiyor.

  2. Yapılandırmanızda IDEA'nın markası yerine Maven'i çalıştırabilirsiniz. Bkz. Run Configuration > Before Launch, varsayılan Make kaldırmalı ve bunu maven hedefleriyle değiştirmelisiniz (ör. clean compile).

+0

1. Bir seçenek değil (ya da onu görmüyorum): -cp, bir şey eklemek yerine sınıf yolunu ayarlar, değil mi? 2. Bu iyi bir öneri, teşekkürler. – incaseoftrouble

+0

@Megge, cp için olduğu gibi, sınıf yoluna ekleyerek eski numarayı kullanabilirsiniz: CLASSPATH = $ CLASSPATH + new_cp_entry. – arghtype

+0

Sadece meraktan: Bu durumda bunu tam olarak nasıl yapardım? Maalesef bu biraz aptalca bir soru gibi görünüyorsa, ancak VM seçeneklerine eklendiğinde '$ CLASSPATH 'çözülmez. – incaseoftrouble