我有一个AAR库,它依赖于某个lib.jar
。我在AAR中添加了以下内容:
dependencies {
implementation files('myexternallibs/lib.jar')
...
}
在生成的AAR中,我仍然可以访问lib.jar
中的类。基于SO中的许多答案,关键字implementation
应该防止这种情况发生。我错过了什么吗?
实现将阻止访问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
模块A mvn配置