2013-05-13 54 views
2

我想製作我的項目的jar文件,但是當我嘗試製作jar時顯示錯誤。如何製作我的maven項目的可運行jar?

到目前爲止,我建立是通過使用一個命令來執行一個罐子,

java -cp <JAR FILE> <MAIN CLASS NAME>

我已經在POM添加插件做到了這一點,

<plugin> 
<artifactId>maven-assembly-plugin</artifactId> 
<configuration> 
<descriptorRefs> 
<descriptorRef>jar-with-dependencies</descriptorRef> 
</descriptorRefs> 
</configuration> 
</plugin> 

,並通過運行命令,mvn cleanmvn install assembly:assembly

但我想一個罐子,將通過使用命令java -jar <JAR FILE>

對於我讀this link也實施運行。但它顯示如下錯誤,

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-jar-plugin:2.4:jar (default-jar) on project ThreadPool: Unable to parse configuration of mojo org.apache.maven.plugins:maven-jar-plugin:2.4:jar for parameter manifest: Cannot find setter, adder nor field in org.apache.maven.archiver.ManifestConfiguration for 'addClassPath' -> [Help 1] 

請幫我製作jar文件,通過使用java -jar命令執行。 在此先感謝。尋找你的善良迴應。

EDIT NO 1

我加了下面的插件,依賴於POM,

<!-- Example dependency --> 
<dependencies> 
    <dependency> 
        <groupId>commons-lang</groupId> 
        <artifactId>commons-lang</artifactId> 
        <version>2.1</version> 
    </dependency> 
</dependencies> 
... 
<build> 
    <plugins> 
        <plugin> 
            <groupId>org.apache.maven.plugins</groupId> 
            <artifactId>maven-jar-plugin</artifactId> 
            <configuration> 
                <archive> 
                    <manifest> 
                        <addClasspath>true</addClasspath> 
                    </manifest> 
                </archive> 
            </configuration>  
        </plugin> 
    </plugins> 
</build> 

回答

4

試試這個

<plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <configuration> 
     <archive> 
      <manifest> 
      <mainClass>your.fully.qualified.MainClass</mainClass> 
      </manifest> 
     </archive> 
     <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
     </configuration> 
</plugin> 

這將

Main-Class: your.fully.qualified.MainClass 

頭添加到罐子的META-INF/MANIFEST.MF並使其可以運行

您可以運行Maven構建作爲一個行

mvn clean package assembly:single 
1

的錯誤意味着某處在你的pom.xml文件,你有沒有被瞭解的元素類路徑您正在配置的元素。搜索一下,看看它是否有意義。

+0

我增加了依賴ency,我加入了POM,請參閱編輯編號。 1.在我添加MainClassPath的地方,你在回答中說過嗎? – devsda 2013-05-13 04:34:10

+0

現在有什麼錯誤,仍然有相同的錯誤? – Elmer 2013-05-13 04:36:33

+0

上面的依賴關係給出了我在問題中提到的錯誤。 – devsda 2013-05-13 04:51:05

相關問題