Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Gradle:一次运行2个Jar任务,只生成一个Jar文件_Java_Gradle - Fatal编程技术网

Java Gradle:一次运行2个Jar任务,只生成一个Jar文件

Java Gradle:一次运行2个Jar任务,只生成一个Jar文件,java,gradle,Java,Gradle,我在Gradle中创建了2个Jar任务。一个用于普通类: tasks.register('compile-common', JavaCompile) { description = 'compile common classes' source = sourceSets.main.scala.srcDirs.collect { it.toPath().resolve('my/artifact/common').toFile() } classpath = sourceSe

我在Gradle中创建了2个Jar任务。一个用于普通类:

tasks.register('compile-common', JavaCompile) {
    description = 'compile common classes'
    source = sourceSets.main.scala.srcDirs.collect { it.toPath().resolve('my/artifact/common').toFile() }
    classpath = sourceSets.main.compileClasspath
    destinationDir = project.buildDir.toPath().resolve('classes.common').toFile()
}

tasks.register('common-jar', Jar) {
    description = 'build common jar'
    manifest {
        attributes 'Build': project.version
    }
    archivesBaseName = project.name + '-common'
    from project.buildDir.toPath().resolve('classes.common').toFile()
    dependsOn 'compile-common'
}
对于具有自定义名称的完整项目:

tasks.register('project-jar', Jar) {
    description = 'build project jar'
    manifest {
        attributes 'Build': project.version
    }
    archivesBaseName = project.name
    from sourceSets.main.output
    dependsOn 'compileScala'
}
在此之后,我运行内置bash:

$ rm -rf build/libs; ./gradlew project-jar common-jar; ls -l build/libs
-rw-r--r--  1 a.iatsuk  staff  265619 Dec 24 14:52 project-common-0.3.61.jar

$ rm -rf build/libs; ./gradlew common-jar project-jar ; ls -l build/libs
-rw-r--r--@ 1 a.iatsuk  staff  11482514 Dec 24 14:53 project-0.3.61.jar

$ rm -rf build/libs; ./gradlew common-jar; ./gradlew project-jar; ls -l build/libs
-rw-r--r-- 1 a.iatsuk  staff  11482514 Dec 24 14:54 project-0.3.61.jar
-rw-r--r-- 1 a.iatsuk  staff  265619   Dec 24 14:54 project-common-0.3.61.jar
为什么当我调用这两个任务时不能得到两个罐子?我尝试编写发布任务,但无论如何都不起作用:

tasks.register('build-release') {
    dependsOn 'common-jar'
    dependsOn 'project-jar'
}

我删除所有
=
符号,并将
archivesBaseName
替换为
baseName
。我不知道为什么,但此修复程序帮助我:

tasks.register('common-jar', Jar) {
    description 'build common jar'
    manifest {
        attributes 'Build': project.version
    }
    baseName project.name + '-common'
    from {
        project.buildDir.toPath().resolve('classes.common').toFile()
    }
    dependsOn 'compile-common'
}

tasks.register('project-jar', Jar) {
    description 'build project jar'
    manifest {
        attributes 'Build': project.version
    }
    baseName project.name
    from {
        sourceSets.main.output
    }
    dependsOn 'compileScala'
}