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

使用gradle为每个主要类构建jar

冯阳云
2023-03-14

>

我的剧本如下

apply plugin: 'eclipse'
apply plugin: 'java'

sourceCompatibility = 1.6
archivesBaseName = 'Process_XY'

configurations {
    configurations.compile.transitive = false
}

dependencies {
    compile fileTree(dir:'/trunk/Solutions/project/Source/Binaries/CommonFunctions/build/libs', include: '*.jar')
    compile fileTree(dir:'/trunk/Solutions/project/lib/GeoTools/geotools-2.7.4-bin/geotools-2.7.4', include: '*.jar')
    compile "org.apache.hadoop:hadoop-core:1.0.3"
    compile "commons-collections:commons-collections:3.2.1"
    compile "commons-configuration:commons-configuration:1.6"
    compile "commons-discovery:commons-discovery:0.2"
    compile "commons-lang:commons-lang:2.4"
    compile "commons-logging:commons-logging:1.1.1"
    compile "commons-logging:commons-logging:1.0.4"
    compile "log4j:log4j:1.2.16"
    compile "com.vividsolutions:jts:1.8"
    compile "commons-net:commons-net:1.4.1"
    compile "org.apache.hadoop:hadoop-core:1.0.3"
    compile "commons-httpclient:commons-httpclient:3.0.1"
    compile "org.mortbay.jetty:servlet-api:2.5-20081211"
    compile "org.apache.hbase:hbase:0.94.0"
    compile "org.apache.zookeeper:zookeeper:3.4.3"
}

repositories {
    mavenCentral()
    maven { url "https://repository.cloudera.com/artifactory/cloudera-repos/" }
    maven { url "http://repo.springsource.org/libs-release" }
    maven { url "http://repo.springsource.org/libs-milestone" }
    maven { url "http://repo.springsource.org/libs-snapshot" }
    maven { url "http://www.datanucleus.org/downloads/maven2/" }
    maven { url "http://oss.sonatype.org/content/repositories/snapshots" }
    maven { url "http://people.apache.org/~rawson/repo" }
}

jar {
    from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
    manifest.attributes("Main-Class":"org.project.seismic.Process_XY")
}   

sourceSets {
    main {
        java {
             source = ['src/org', '../../../SharedClass/org']
        }
    }
}

在上面的sourceSets方法中,我尝试从2文件夹加载源代码,但没有成功

提前谢谢。。!!如何使用gradle实现。

共有1个答案

陆星文
2023-03-14

好的,首先,一个SourceDirectorySet上的source接受另一个SourceDirectorySet。然而,srcDirs方法采用路径。将该块更改为以下内容:

sourceSets {
  main {
    java {
      srcDirs ['src/org', '../../../SharedClass/org']
    }
  }
}

您可以轻松添加第二个jar任务,如下所示:

task secondJar(type: Jar) {
  name = other-main-jar
  from ...
  manifest.attributes(...)
}

assemble.dependsOn(secondJar)

这将注册一个名为secondJar的新Jar任务,并确保在组装项目时,也会创建这个Jar。

 类似资料:
  • 问题内容: 我正在尝试从build.gradle文件中运行Groovy类。我遵循使用指南中的指示,但是出现错误。 构建文件为: 常规类很简单: 但是,当我尝试运行gradlew编译fooTask时,出现以下错误: 无法解析类groovyClass 知道为什么吗? 谢谢 问题答案: 如果要从构建中引用它,则需要添加该类(而不是在简单的Exec任务中)。给定此目录结构: 在哪里: 并且是: 然后,运行

  • 问题内容: 我是Gradle新手。我想构建一个uberjar(AKA fatjar),其中包括项目的所有传递依赖项。我需要在“ build.gradle”中添加哪些行? 这是我目前拥有的:(我是从几天前的某个地方复制的,但是不要从那里收集。) 问题答案: 您是否尝试过 gradle食谱中 的fatjar示例? 您正在寻找的是gradle 的影子插件

  • 我确信这以前被问过,但我只是没有找到正确的关键字来寻找答案,所以... 当我请求构建一种构建类型时,如何阻止Gradle for Android(在Android Studio内部或外部)构建库模块的所有构建类型?注意,如果我正在构建,我如何防止Gradle for Android也构建? 对于那些有其他想法的人来说,背景故事是: 假设我有两个Android Studio项目,A和B。每个项目都有

  • 问题内容: 我有一个Gradle构建脚本,该脚本必须实例化Task中的Java类并在创建的对象上调用方法。目前,我有以下内容: 问题是找不到该类。我阅读了有关如何在Gradle中使用Groovy类的文章,但是我需要Java类来自外部JAR文件。如何将jar添加到构建源?似乎该块没有执行我期望的操作。谁能给我一个正确方向的提示? 问题答案: 该依赖关系作为项目依赖关系而不是脚本依赖关系本身添加。您需

  • 我有一个Gradle构建脚本,它必须在一个任务中实例化一个Java类,并在创建的对象上调用一个方法。目前,我有以下内容: 问题是找不到类。我阅读了这篇关于如何在Gradle中使用Groovy类的文章,但我需要我的Java类来自外部JAR文件。如何将jar添加到构建源中?似乎块没有完成我所期望的任务。谁能给我一个正确方向的提示吗?

  • 我正在尝试使用gradle/Clojuresque来构建clojure代码,运行它,并获得uberjar。我使用来自http://dev.clojure.org/display/doc/Getting从Gradle开始,https://bitbucket.org/kotarak/clojuresque/wiki/Getting开始了,但“找不到我们”。bpsm:ednjava:0.4。Clojur