当前位置: 首页 > 知识库问答 >
问题:

对于官方的Maven存储库,人们会发布胖罐子吗?

咸育
2023-03-14

我想将Java应用程序部署到Maven存储库,我不确定是否应该释放脂肪jarjarw/o依赖项。

我检查了junit的示例(https://mvnrepository.com/artifact/junit/junit/4.12)他们有一个只有307KB的jar文件。

人们发布fatjarjar时是否没有依赖项?

共有2个答案

云宾鸿
2023-03-14

应用程序通常不会发布到Maven存储库,因为您通常不会将完整的应用程序作为依赖项添加到项目中。对于库来说,如果它们可以通过maven central自己使用,那么将它们的依赖项包含在jar中是没有意义的,因为maven可以直接下载它们,正如Ernest Kiwele在他的回答中提到的,它为下游项目提供了更大的灵活性。

汤嘉平
2023-03-14

如果您要发布到Maven central,那么您的第一个选择应该是仅使用其代码发布您的工件。这不应该是一个问题,因为从Maven central下载的典型用户将系统地使用Maven工具,这将减少用户的复杂性。

除非工件是一个具有所有依赖关系的可执行文件,这样用户就可以在下载后运行它,否则发布一个胖罐子几乎没有什么好处,而缺点却堆积如山。

如果要发布包含代码的“库”,以便在其他应用程序中使用:

  • 带有POM的单个工件允许您的用户选择其包含的可传递依赖项
 类似资料:
  • 我使用的是maven 3.6.1和maven shade plugin 2.3。我已经复制了下面pom文件中的shade插件部分。清单是在创建jar时创建的,但它没有引用主类。我正在使用mvnpackage命令创建jar。对如何解决这个问题有什么想法吗?

  • 我有一个用于构建JAR并将其发布在nexus服务器上的maven存储库中的gradle文件。 我想在这种情况下应该将设置为空字符串。有什么更好的建议吗? 正在发布任务 generatePomFileFor{module1}发布-为发布“module1”生成Maven POM文件。 出版-出版本项目制作的所有出版物。 publish{module1}PublicationToMavenLocal-将

  • 我已经阅读了所有的教程和示例,但仍然无法在我的本地常春藤存储库中发布一组自定义jar 编辑:基本上,我希望与maven安装插件具有相同的行为 这是我的设置。我有一个Ant任务,它在给定的文件夹中生成jar。文件夹名称不是固定的,而是作为文件中的属性传递的。我想得到这个文件夹中的所有jar,并将它们安装到我的本地常春藤存储库中,以便在下一步使用它们 这是我的蚂蚁,我把它叫做常春藤:publish:

  • 请求header POST /v1/activity/{频道id}/official Authorization:Bearer {ACCESS TOKEN} Content-Type:application/json 注: 请将上方的{ACCESS TOKEN}替换为您的ACCESS TOKEN 请将"{频道id}"替换您需要获取的频道id 请求payload { "username"

  • 我试图在NetBeans中建立一个胖罐子。当我点击clean时,它显示以下错误: C:\workspace\travel_agency\nbproject\build-impl.xml:63:源资源不存在:C:\workspace\travel_agency\dist\nblibraries.properties 然后单击错误,它会将我发送到build-imple.xml文件中的以下行:

  • 我的spring-boot项目如下所示: 应用程序包含main和一个实现WebMVCConfigurer的MvcConfig类: 当我运行:gradlew:application:bootrun=>时,一切都很好。 我的web目录是一个angularJS应用程序,gulp将其构建在一个dist库中。(我正在使用moowork节点和gulp gradle插件) 我知道我必须更改addResource