使用gradle为每个主类构建jar

使用gradle为每个主类构建jar,gradle,Gradle,1.我的项目有两个主要类,我想使用gradle为每个主要类构建jar。我的源代码有2个文件ValidationRule.java java这两个文件都有一个我想要的主类 为每个主类构建jar 我可以通过eclipse的良好工作实现同样的效果 2.我想从两个不同的文件夹加载我的项目的源文件,其中一个文件夹中有一部分,其余的则是 有 另一个文件夹,如 project/src snd项目外部的另一个文件夹(../../../../SharedClass) 我的剧本如下 apply plugin: 'e

1.我的项目有两个主要类,我想使用gradle为每个主要类构建jar。我的源代码有2个文件ValidationRule.java java这两个文件都有一个我想要的主类 为每个主类构建jar 我可以通过eclipse的良好工作实现同样的效果 2.我想从两个不同的文件夹加载我的项目的源文件,其中一个文件夹中有一部分,其余的则是 有 另一个文件夹,如 project/src snd项目外部的另一个文件夹(../../../../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
接受另一个
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。

您能澄清一下您的问题吗?您正在查看的目录结构是什么?你试过什么了?你能再澄清一下吗?我的回答中你不明白的地方还不完全清楚。你遗漏了什么,或者我怎么没有回答你的问题?