gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 10:03:12 26 4
gpt4 key购买 nike

  1. 1.我的项目有两个主类,我想使用 gradle 为每个主类构建 jar。我的来源有 2 个文件 ValidationRule.java SupportValidator.java 这两个文件都有一个我想要的主类 为每个主类构建 jar 我可以通过 Eclipse 实现相同的效果 2.我想从 2 个不同的文件夹加载我的项目的源文件,一部分在一个文件夹中,剩下的是在那里 另一个文件夹,例如 project/src 和项目外的另一个文件夹(../../../SharedClass)

    我的脚本如下

    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实现。

最佳答案

好的,首先,SourceDirectorySet 上的source 需要另一个SourceDirectorySetsrcDirs 方法采用路径。将该 block 更改为以下内容:

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。

关于gradle - 使用 gradle 为每个主类构建 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13722743/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com