[英]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)
我创建罐子的方式有什么问题?
编辑@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.