首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引用Maven Jar文件的jar文件不能一致地工作

引用Maven Jar文件的jar文件不能一致地工作
EN

Stack Overflow用户
提问于 2019-11-04 18:56:14
回答 2查看 63关注 0票数 0

我有一个Swing应用程序,它使用来自Maven工件math.geom2d:javaGeom:0.11.1的类。为了在GitHub发行版中创建jar文件,我使用了一个修改过的"fatJar“build.gradle任务,因此jar文件中包含了geom2d类。对于我在Maven上的应用程序的jar文件,我不包括geom2d类,因此这些类不会出现在jar文件中,但它们被作为依赖项引用。

奇怪的是,在我的机器上,这个(较小的) jar文件一直工作得很好,所以我认为一切都好,即使奇怪!我决定在我妻子的机器上试一试,它用NoClassDefFoundError就会崩溃。我想可能是因为她没有安装Maven ..。试着安装它,但没有区别!我会很感激你的帮助!

下面是我的应用程序Maven上的pom.xml:

代码语言:javascript
复制
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jpaulmorrison</groupId>
<artifactId>drawfbp</artifactId>
<version>2.18.4</version>
<name>DrawFBP</name>
<description>Diagramming Tool for Flow-Based Programming</description>
<url>https://github.com/jpaulm/drawfbp</url>
<licenses>
<license>
<name>GNU Lesser General Public License, Version 3.0</name>
<url>https://www.gnu.org/licenses/lgpl-3.0.txt</url>
</license>
</licenses>
<developers>
<developer>
<id>jpaulmorr</id>
<name>
John Paul Rodker Morrison (Software architect/developer)
</name>
<email>jpaulmorr@gmail.com</email>
</developer>
<developer>
<id>bobcorrick</id>
<name>Bob Corrick (Software architect/developer)</name>
<email>bobcorrick@outlook.com</email>
</developer>
</developers>
<scm>
<connection>scm:git:https://github.com/jpaulm.git</connection>
<developerConnection>scm:git:https://github.com/jpaulm.git</developerConnection>
<url>https://github.com/jpaulm.git</url>
</scm>
<dependencies>
<dependency>
<groupId>math.geom2d</groupId>
<artifactId>javaGeom</artifactId>
<version>0.11.1</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>

谢谢@samvel1024!我现在对正在发生的事情有了更好的处理:

  • --没有geom2d类的jar文件可以运行,因为我的类路径中有geom2d --不再有了!
  • --使用build.gradle中的任务创建fatJar,但是uploadArchives创建了一个新的jar文件,它不是“fat”!因此,我想要将fatJar任务添加到uploadArchives函数

  • 在uploadArchives中抑制' jar‘任务,这样它就不会破坏我已经拥有的“胖”jar!我尝试过"jar.enabled = boolean变量“,但不能将其设置为”false“.

在明智的语言中,这两种选择都应该是容易的,但我无法做到这两种选择!我会很感激你的帮助!

EN

回答 2

Stack Overflow用户

发布于 2019-11-05 15:12:21

如果要使用maven构建jar,那么需要像gradle building中一样包含所有的依赖项。

如果您希望jar能够使用java -jar my.jar运行,那么还需要使用一些构建插件来帮助您。

你可以找到更多的细节here

票数 0
EN

Stack Overflow用户

发布于 2019-11-07 18:09:20

原来是这么简单!原来是上面的第二种选择:

“.抑制uploadArchives中的' jar‘任务,这样它就不会破坏我已经拥有的”胖“jar!”

-x jar添加到uploadArchives的命令行!

不管怎样,谢谢你,@samvel1024!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58699489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档