簡體   English   中英

Jar在罐子里用Maven構建

[英]Jar in a jar build with maven

我正在嘗試為我的應用創建一個.jar。 這個程序包含許多東西,例如另一個.jar。

在我的pom配置中使用此插件:

            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <mainClass>com.rilent.App</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>

我有這個鏈接到本地​​罐子

    ...
    <dependency>
        <groupId>it.sauronsoftware.jave</groupId>
        <artifactId>jave</artifactId>
        <version>1.0</version>
        <scope>system</scope>
        <systemPath>${project.basedir}/src/main/resources/jave-1.0.2.jar</systemPath>
    </dependency>

我正在使用此命令來構建返回BUILD SUCCESS的應用程序:

 mvn clean compile assembly:single

但是,當我嘗試執行程序時,它在崩潰時返回此錯誤:

Exception in thread "main" java.lang.NoClassDefFoundError: it/sauronsoftware/jave/InputFormatException
( a class from the .jar)

我嘗試解壓縮主jar以查看其內容: 在此處輸入圖片說明

我創建罐子的方式有什么問題?

編輯@ThorbjørnRavn Andersen

我也嘗試過這種方式,將其添加到pom中:

<!-- https://mvnrepository.com/artifact/com.jolira/onejar-maven-plugin -->
<dependency>
    <groupId>com.jolira</groupId>
    <artifactId>onejar-maven-plugin</artifactId>
    <version>1.4.4</version>
</dependency>

然后我用mvn compile ,當我嘗試運行.jar時,出現此錯誤

no main manifest attribute, in .\\myapp-0.0.1-SNAPSHOT.jar ,我又在做什么錯...?

注意:我的jar也包含一個.exe

標准類加載器無法從jar內的jar加載類。 EXE文件無法從jar內運行。

這並不意味着這是不可能的,而是有點麻煩,也許超出了您當前的技能水平。 您可能會發現One Jar( http://one-jar.sourceforge.net/ )很有趣,因為它可以自動執行此操作。

對於Maven項目,我在使用appassembler創建部署結構和腳本方面擁有豐富的經驗。 http://www.mojohaus.org/appassembler/appassembler-maven-plugin/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM