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)

Reply via email to