在我的Gradle Java项目中使用本地jar作为依赖项
我有一个名为mylib.jar
的本地jar文件。我想在Gradle Java项目中将其用作依赖项
这就是我尝试的:
我在project root下创建了一个libs/
文件夹。我把jar文件放在libs/
文件夹下
MyProject
->libs/mylib.jar
->build.gradle
->src/...
以我的身材。格雷德尔:
apply plugin: 'java-library'
group 'com.my.app'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
flatDir {
dirs 'libs'
}
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
api files('libs/mylib.jar')
}
但是我无法访问项目代码中mylib.jar
中定义的公共类。为什么
====更多信息=====
我罐子里的东西:
mylib.jar
> com.my.jar.package
>ClassFromJar.class
下面是我如何使用这个罐子:
// Compilation error: Cannot resolve symobl 'ClassFromJar'
import com.my.jar.package.ClassFromJar;
public class MyEntryPoint {
// Compilation error: Cannot resolve symbol 'ClassFromJar'
ClassFromJar instance = new ClassFromJar();
}
# 1 楼答案
以防万一:
1-编译器必须有访问lib目录和jar的权限 例如:
2-java文件中还必须提到导入 java add中的示例
# 2 楼答案
我认为您应该在依赖声明中使用
compile name: 'mylib'
在这种情况下flatDir
将搜索mylib。罐子您可以尝试以下构建。gradle(它在我的项目中起作用):
# 3 楼答案
只有
*.aar
才需要flatDir
存储库(这是一种特定于Android的库格式,与给定的上下文完全无关)implementation
和api
会影响可见性,但它们也是Android DSL特有的)。在通用Java模块中,可以这样引用它:并确保将
*.jar
放入模块内正确的libs
目录# 4 楼答案
Similar answers suggesting
compile fileTree
: