Jens Berke created TOMEE-2152:
---------------------------------
Summary: ApplicationComposers.addWebApp fails to detect main
classes for Gradle >= 4
Key: TOMEE-2152
URL: https://issues.apache.org/jira/browse/TOMEE-2152
Project: TomEE
Issue Type: Bug
Affects Versions: 7.0.4
Reporter: Jens Berke
Attachments: ApplicationComposers.patch
Starting with Gradle 4, the output directory layout has been changed, and as a
result the detection of the main classes directory in
org.apache.openejb.testing.ApplicationComposers.addWebApp fails.
The changes are documented in the [release notes for Gradle
4|https://docs.gradle.org/4.0/release-notes.html], see chapters "Multiple class
directories for a single source set" and "Location of classes in the build
directory" there.
As a workaround it is currently possible to change the output directory
structure in the Gradle build script to what ApplicationComposers.addWebApp
expects, but this possibility is scheduled to be removed in Gradle 5.0.
The attached patch only demonstrates the minimal change necessary for Gradle >=
4, but it also breaks backwards compatibility with Gradle <= 3. Therefore it
might be a good idea to add a system property or something similar which allows
activation of the old directory structure detection for Gradle <= 3.
It also may be a good idea to not hard-code the "java" sub-directory because
the value might be different depending on the plugins used to run and build in
Gradle. See the Gradle API doc for
[SourceDirectorySet.outputdir|https://docs.gradle.org/4.0/dsl/org.gradle.api.file.SourceDirectorySet.html]
which shows how Gradle now creates the output path dynamically.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)