2016-08-15 40 views
1

我现在正在开发项目-A,我承认,外包一些零件会让这些东西可以重复使用。我现在想着用gradle(Project-B)创建一个新项目,将所有这些可重用的源放在那里,并再次将它们作为依赖包含在Project-A中。如何使用Gradle创建可重用源的Jar库?

我对gradle-build-files有非常基本的知识,所以我的问题是,build.gradle文件中的基本步骤是什么?

+0

生成项目B中的罐子,并在Maven仓库发布。生成一个jar是gradle中的默认设置,并且有一个发布插件(甚至两个实际的)将您的artefacts发布到repo。从A使用B,就像从Maven存储库中使用任何其他库一样。 –

回答

1

我认为你最好的选择是将你的Project-B作为库发布到本地的Maven仓库(这只是你文件系统中的一个目录)。当然如果需要的话,你也可以发布到公共仓库。

假设您在/path/to/repo上创建了这样一个本地存储库,您可以执行以下操作。

对于Project-B

在你gradle.properties定义一些变量:

pName=your-project-name 
pGroup=your-group-name 
pVersion=1.0.0 

在你settings.gradle,将项目名称:

rootProject.name = pName 

在你build.gradle,应用Maven插件:

apply plugin: 'maven' 
使用

gradle clean uploadArchives 

对于

uploadArchives { 
    repositories { 
     mavenDeployer { 
      repository(url: file://localhost/path/to/repo) 
     } 
    } 
} 

然后,您可以上传您的项目到仓库:

设定从其它文件中的这些变量:

group = pGroup 
version = pVersion 

此外,定义上传任务Project-A

添加您的本地r epository到Maven仓库名单:

repositories { 
    maven { 
     url /path/to/repo 
    } 
    mavenCentral() 
} 

添加您的项目-B的依赖关系:

dependencies { 
    compile 'your-group-name:your-project-name:1.0.0' 
} 

就是这样,项目,正在运行的任务时,应自动拉项目-B的jar文件如gradle buildgradle eclipse

可选发布源

如果你想项目-B的来源包括在M艾文库让您的IDE可以显示库的源代码,添加到您的build.gradle

task sourcesJar(type: Jar, dependsOn: classes) { 
    classifier = 'sources' 
    from sourceSets.main.allSource 
} 

artifacts { 
    archives sourcesJar 
} 
相关问题