2013-03-28 14 views
9

ile sınıf yolunu ayarlayamıyor Konsol uygulaması oluşturuyorum. conf klasöründe jar dosyasının dışındaki yapılandırma dosyalarını almak istiyorum ve bu klasörü uygulamam için bir sınıf yolu olarak kaydetmek istiyorum., maven-assembly-plugin

mvn assembly:single komutunu çalıştırıyorum, bir jar dosyası alın, ancak bu JAR'ı java -jar MyApplication.jar ile çalıştırmaya çalıştığımda, yapılandırma dosyalarını okuyamaz.

ben bu pasajı var benim pom.xml

<build> 
    <finalName>MyApplication</finalName> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.1</version> 
      <configuration> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-eclipse-plugin</artifactId> 
      <version>2.7</version> 
      <configuration> 
       <projectNameTemplate> 
        [artifactId]-[version] 
       </projectNameTemplate> 
       <wtpmanifest>true</wtpmanifest> 
       <wtpapplicationxml>true</wtpapplicationxml> 
       <wtpversion>2.0</wtpversion> 
       <manifest> 
        ${basedir}/src/main/resources/META-INF/MANIFEST.MF 
       </manifest> 
      </configuration> 

     </plugin> 

     <plugin> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <configuration> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
       <appendAssemblyId>false</appendAssemblyId> 
       <archive> 
        <manifest> 
         <mainClass>com.my.test.App</mainClass> 
        </manifest> 
        <manifestEntries> 
         <Class-Path>.conf/</Class-Path> 
        </manifestEntries> 
       </archive> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 
+0

koymak zorunda kaldı –

cevap

8

Benim hatamdı, ben bu ben koymak benim hatam vardı

<Class-Path>./conf/</Class-Path> 

değil

<Class-Path>.conf/</Class-Path> 
2

Genellikle bu yapılandırmayla MANIFEST içinde sınıf yolu girişi ziyade maven-kavanoz-eklentisi oluşturmak için montaj eklentisi kullanmayın:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <version>2.3.1</version> 
    <configuration> 
     <archive> 
     <index>true</index> 
     <manifest> 
      <addClasspath>true</addClasspath> 
      <addExtensions>false</addExtensions> 
      <mainClass>com.my.test.App</mainClass> 
     </manifest> 
     </archive> 
    </configuration> 
    </plugin> 

Bağımlılıkları (geçişli olanlar da dahil) yapı dizinime kopyalamak ve dağıtım arşivini oluşturmak için yalnızca montaj eklentisini kullanıyorum. Bağımlılık eklentisini de kullanabilirsiniz. Bağımlılıklarınızı dağıtım ağacınızın bir alt dizinine kopyalamak isterseniz, montaj tanımlayıcı bağımlılıkları hedefiyle eşleştirmek için maven-jar-plugin yapılandırmasında classpathPrefix kullanın.

Regard