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

而不是公开我所依赖的jar文件

宇文智敏
2023-03-14

我有一个AAR库,它依赖于某个lib.jar。我在AAR中添加了以下内容:

dependencies {
    implementation files('myexternallibs/lib.jar')
    ...
}

在生成的AAR中,我仍然可以访问lib.jar中的类。基于SO中的许多答案,关键字implementation应该防止这种情况发生。我错过了什么吗?

共有1个答案

司寇经亘
2023-03-14

实现将阻止访问lib.jar实现的库,而不是此库

例如:

Library1
  |-> Class1
  |-> Class2

Library2 (implementation 'Library1')
  |-> Class3 (this library can access Class1 and Class2)

YourProject (implementation 'Library2')
  |-> Main (this library can access Class3, but not Class1 and Class2)
 类似资料:
  • 有人能这么好心解释一下如何在Netbean MavenJava应用程序中使用所有maven依赖项创建单个jar文件吗?在Eclipse中,用户可以导出到Runnable jar文件并选择将所需的库打包到生成的JAR中,因此项目中的所有依赖项都包含在创建的jar文件中。在Netbean中没有这样的选项。我检查了其他答案,但我唯一理解的是我必须将代码添加到Build.xml文件中,该文件甚至不在项目中

  • 我有一个多模块的项目,即。 在一个开发周期中,我向Module1添加了一个类。module2中的类依赖于它。 我的本地中没有这些工件。运行此: 然而,这至少从两个方面提出了一个问题: 我必须经历较慢的安装阶段,而不是较快的编译阶段 我有同一个项目的两个版本,在这些版本中有冲突的修改。我不能用它们各自的修改运行相同的Java类,只能运行当前安装的修改,考虑到它们都是相同的快照版本 这两种方法都有解决

  • 编辑: 结构: A.jar(或A.war) | |src/main/resources/config。属性-(标记为p1) | ||依赖的罐子 当我运行A. jar(或A. war,因为B. jar可以由Web应用程序或java进程调用)时,我希望B. jar中的代码始终使用p1; 当我单独运行B. jar时,我希望B. jar中的代码使用p2 另一种描述方式是主jar/war中同名的资源文件(这

  • 如何告诉Storm使用包含在fat jar中的依赖项而不是Storm类路径中的依赖项? 以下是一些背景/细节: 是中包含的2.0和fat JAR中包含的2.7的依赖项。 使用运行拓扑似乎可以使用2.7。 使用提交拓扑似乎使用2.0而不是2.7。 是使用创建的: 在的依赖项部分下 执行时,会发现2.7的正确joda时间戳 我之所以注意到这一点,是因为我在通过命令提交拓扑时看到以下警告/错误:

  • 我将Eclipse开普勒SR2与m2e结合使用。我有一个依赖于jar的web项目。 当我使用“运行为- 我使用maven war插件2.4版。 这是我的战书: 这是依赖jar的工件坐标: 我已经查看了maven包目标的调试输出。当war插件处理jars时,它说 但不表明罐子已被复制。稍后在日志中我看到: 我尝试过嵌入式maven(3.0.4)和外部maven(3.0.5)。我的同事使用开普勒SR1