【发布时间】:2020-06-13 19:47:09
【问题描述】:
我有以下蚂蚁任务:
<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 上声明的任何依赖项。 还尝试在我的 dependencies{} 标签上添加依赖项,但它仍然不起作用。 到处搜索,找不到解决办法
提前致谢!
【问题讨论】:
-
您是否有理由不使用Java 插件提供的编译任务?
-
@FranciscoMateo 除了编译之外,我还需要做更多的工作,但是如果我可以使用编译任务并且之后还能做一些额外的事情,我完全可以使用它。这可能吗?
-
是的,您应该能够在内置 Java 编译任务之前或之后做额外的事情。从外观上看,所有这些 jar 都是本地的,还是可以从 Maven Central 等在线存储库中检索到?
-
@FranciscoMateo 所有这些 jars 都是本地的,其中一些是 hibernate 之类的库,可以从 maven Central 检索,但我也有非常古老的库
-
@jmacboy 你能指定你正在使用的 gradle 版本吗?谢谢