java - Ant 到 Gradle,javaCompile 任务的问题

标签 java gradle ant

我有以下 ant 任务:

<javac 
  srcdir="${mypackage.code.src.java}"
    source="1.8"
  target="1.8" 
  destdir="${mypackage.build.output.}"     
  deprecation="on" 
  debug="true" 
  >

  <classpath path="${jboss.common.lib.}/hibernate-annotations-3.5.0-Final.jar" />
  <classpath path="${jboss.common.lib.}/jboss-ejb3-common.jar" />
  <classpath path="${jboss.common.lib.}/scheduler-plugin.jar" />
  <classpath path="${jboss.common.lib.}/servlet-api.jar" />

  <classpath>
    <path>
      <fileset dir="${myotherpackage.lib.thirdparty.}">
        <include name="jboss-5.1.0.GA/ejb3-persistence.jar" />
        <include name="jboss-5.1.0.GA/hibernate-core-4.2.1.final.jar"/>
        <include name="jboss-5.1.0.GA/jboss-javaee.jar" />   
        <include name="jboss-5.1.0.GA/jboss-j2se.jar"/>
        <include name="jboss-5.1.0.GA/jsp-api.jar"/>
      </fileset>
      <fileset dir="${jboss.server.myotherpackage.lib.}">
        <include name="**/*.jar"/>
      </fileset>
      <fileset dir="${jboss.server.myotherpackageear.}" >
        <include name="**/*.jar"/>
      </fileset>
      <fileset dir="${mypackage.code.src.www}/WEB-INF/lib" >
        <include name="**/*.*" />
        </fileset>
    </path>
  </classpath>
</javac>

我正在尝试将其转换为 gradle,到目前为止我有以下任务:

task doCompile(type: JavaCompile) {
    classpath = sourceSets.mySourceSet.output
    sourceCompatibility = '1.8'
    targetCompatibility = '1.8'
    destinationDir = file("$mypackage_build_output")
    source = file("$mypackage_code_src_java")
}

我的源集也定义如下:

sourceSets {
    jt3SourceSet {
        java {
            compileClasspath += files("${jboss_common_lib}/hibernate-annotations-3.5.0-Final.jar")
            compileClasspath += files("${jboss_common_lib}/jboss-ejb3-common.jar")
            compileClasspath += files("${jboss_common_lib}/scheduler-plugin.jar")
            compileClasspath += files("${jboss_common_lib}/servlet-api.jar")
            compileClasspath += files("${myotherpackage_lib_thirdparty}/jboss-5.1.0.GA/hibernate-core-4.2.1.final.jar")
            compileClasspath += files("${myotherpackage_lib_thirdparty}/jboss-5.1.0.GA/ejb3-persistence.jar")
            compileClasspath += files("${myotherpackage_lib_thirdparty}/jboss-5.1.0.GA/jboss-javaee.jar")
            compileClasspath += files("${myotherpackage_lib_thirdparty}/jboss-5.1.0.GA/jboss-j2se.jar")
            compileClasspath += files("${myotherpackage_lib_thirdparty}/jboss-5.1.0.GA/jsp-api.jar")
            compileClasspath += fileTree(dir: "${jboss_common_lib}", include: ['*.jar'])
            compileClasspath += fileTree(dir: "${jboss_server_mypackage2ear}", include: ['*.jar'])
            compileClasspath += fileTree(dir: "${mypackage_code_src_www}/WEB-INF/lib", include: ['*.*'])
        }
    }
}

在 ant 编译中,它工作得很好,但在 gradle 上,它无法识别在 sourceSet 上声明的任何依赖项。 还尝试添加对我的依赖项{}标记的依赖项,但它仍然不起作用。 到处搜索都没有找到解决办法

提前致谢!

最佳答案

我最终这样做了:

task doCompile(type: JavaCompile) {
    classpath = sources //a file collection specifying a list of sources
    sourceCompatibility = '1.8'
    targetCompatibility = '1.8'
    destinationDir = file("$mypackage_build_output")
    source = file("$mypackage_code_src_java")
}

还删除了sourceSet,不再需要它了。 您可以使用 java 插件来完成此任务,但我需要做的不仅仅是编译,因此坚持执行 javacompile 任务。

关于java - Ant 到 Gradle,javaCompile 任务的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62162648/

相关文章:

java - Linux 机器上的邮件服务器使用 Java 读取邮件

java - &nbsp 字符在 Java 中无法正确显示

android - Android Studio如何打包来自多个库项目的单个AAR?

java - 当您在生产环境中测试和运行 jar 时,如何创建可用的 MANIFEST.MF?

java - 使用在不同的基于 java 的 Spring 配置文件中定义的原型(prototype) beans

java - 如何在不使用 Java 集合框架的情况下在 Java 中组合(追加)通用列表?

intellij-idea - 无法注册类型为 'SOURCE' 的给定路径,因为它超出了内容根目录

spring - 当作为另一个依赖项添加到另一个 Spring Boot 应用程序时,使用 @Scheduled 注释的方法在 Spring Boot 应用程序中不起作用

ant - 用于即时转储控制台输出的 ant junit 任务选项

java - build.properties 和 build.xml