gradle--第7章、Java快速开始2

来源:互联网 发布:网络接入协议 编辑:程序博客网 时间:2024/05/06 09:00
7.2.2 外部依赖
一般而言,一个Java工程都会依赖于一些外部的Jar包文件。要在工程中引用这些Jar文件,你需要告诉Gradle在哪里可以找到他们。在Gradle中,像Jar包这样的镜像库一般位于仓库中。一个仓库可以被用于工程来获取依赖,或者用来发布一个工程的镜像库,或者两张都是。下面的例子中,我们将会使用Maven的中央仓库:
Example 7.3. Adding Maven repository


build.gradle
repositories {
    mavenCentral()
}
让我们来添加一些依赖,这里我们定义我们的产品类有一个对commons collections的编译时依赖,并且我们的测试类有一个对junit的编译时依赖。
Example 7.4. Adding dependencies


build.gradle
dependencies {
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
    testCompile group: 'junit', name: 'junit', version: '4.+'
}
你可以在第八章Dependency Management Basics获取更多信息。
7.2.3 定制化一个工程
Java插件为你的工程添加了大量的属性。大部分情况下,这些属性都有一个默认值足够你开始你的构建。如果他们的值不合适你的工程,你也可以很容易的改变。让我们在看一下下面这个例子,这里我们将会描述出我们这个Java工程的版本号,以及我们源代码编写使用的Java版本,我们也为Jar文件的manifest添加了一些属性。
Example 7.5. Customization of MANIFEST.MF


build.gradle
sourceCompatibility = 1.5
version = '1.0'
jar {
    manifest {
        attributes 'Implementation-Title': 'Gradle Quickstart',
                   'Implementation-Version': version
    }
}
Java插件添加的都是有规则的任务。就像在构建文件中定义的文件一样。这也意味着你可以使用前面章节提到过的所有机制来定制化这些任务。例如,你可以为一个任务添加属性,为一个任务添加行为,改变一个任务的依赖,或者替换整个任务。在下面这个例子中,我们将会配置我们的测试任务,它的类型是Test,当其在运行时添加一个系统属性
Example 7.6. Adding a test system property


build.gradle
test {
    systemProperties 'property': 'value'
}
7.2.4 发布Jar包
通常情况下,Jar文件需要发布到某些地方,要做这个,你需要告诉Gradle要把Jar文件发布到哪里,在Gradle中,镜像库像Jar文件都是发布到仓库,在下面这个例子中,我们发布到了一个本地文件夹。你也可以发布到远程上的网络地址,或者发布到多个地方。
Example 7.7. Publishing the JAR file


build.gradle
uploadArchives {
    repositories {
       flatDir {
           dirs 'repos'
       }
    }
}
要发布Jar文件,运行gradle uploadArchives.
7.2.5 创建一个Eclipse工程
要穿件一个特定的Eclipse描叙文件,如.project,你需要添加另外的一个插件到Gradle的build文件中。
Example 7.8. Eclipse plugin


build.gradle
apply plugin: 'eclipse'
现在你可以执行gradle eclipse命令来生成Eclipse工程文件。更多关于eclipse任务的信息可以在Chapter 38, The Eclipse Plugins中找到。
7.2.6 总结
下面一个实例是一个比较完整的构建文件:
Example 7.9. Java example - complete build file


build.gradle
apply plugin: 'java'
apply plugin: 'eclipse'


sourceCompatibility = 1.5
version = '1.0'
jar {
    manifest {
        attributes 'Implementation-Title': 'Gradle Quickstart',
                   'Implementation-Version': version
    }
}


repositories {
    mavenCentral()
}


dependencies {
    compile group: 'commons-collections', name: 'commons-collections', version: '3.2'
    testCompile group: 'junit', name: 'junit', version: '4.+'
}


test {
    systemProperties 'property': 'value'
}


uploadArchives {
    repositories {
       flatDir {
           dirs 'repos'
       }
    }
}
0 0
原创粉丝点击