2017-09-14 22 views
13

Projemi maven ve ile yapıyorum.--add modülleri sadece derlemede

<plugin> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>${maven-compiler-plugin.version}</version> 
    <configuration> 
     <source>${java.version}</source> 
     <target>${java.version}</target> 
     <compilerArgs> 
      <arg>--add-modules</arg> 
      <arg>java.xml.bind</arg> 
     </compilerArgs> 
    </configuration> 
</plugin> 

Ama yine de, ben böyle çalıştırmak zorunda uygulamayı çalıştırmak için: Benim pom.xml dosyada eklediğiniz çalıştırmak, uygulama oluşturmak için bir yol var mı

java -jar --add-modules java.xml.bind my-app.jar 

java komut satırı argümanlarına --add-modules java.xml.bind olmadan komut satırı?

+0

uzaklaşarak yanı sıra modül için API'leri standalone göç sağlamak Bu şekilde ama belki: Yapmak gereken değişikliğin bağımlılıkları listesine aşağıdaki eklemektir yanlış, 'maven-compiler-plugin' içinde yaptığınız sadece maven tarafından projenizi derlemek için kullanılan derleyici' javac' için değil, çalışma zamanı 'java' için değil, yani '--add-modules' java çalışma zamanı java'ya. – Tiina

+0

Doğru. Bu yüzden 'add-modules 'eklemeden nasıl çalıştırılacağını sordum. – wbk

cevap

19

Bir keresinde, Maile kullanarak Java-9'daki java.se paketlerini açığa çıkarmak için ek bir bilgi olarak bunu yanıtladığım bir süre önce this answer yaptım.

Eklenen kısım, özellikle java.xml.* API'lerinin bağımsız sürümünü kullanmaya odaklanmaktadır. Modül olarak yüklenebilen numaralı telefona bağımlılığı tüketmeye başlayabileceğiniz ve aynı zamanda sınıf yolundan da yürütülebilen adapte olmak için.

<dependency> 
    <groupId>javax.xml.bind</groupId> 
    <artifactId>jaxb-api</artifactId> 
    <version>2.3.0</version> 
</dependency> 

ne düşündüğümü bir deprecated piece of code.