[ 
https://issues.apache.org/jira/browse/TOMEE-2152?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16276913#comment-16276913
 ] 

Jens Berke commented on TOMEE-2152:
-----------------------------------

Sounds like a good idea. The strategy might also take into account that the 
output directory uses the "name" of the source directory set to build the 
output path dynamically, see 
[SourceDirectorySet.outputdir|https://docs.gradle.org/4.0/dsl/org.gradle.api.file.SourceDirectorySet.html#org.gradle.api.file.SourceDirectorySet:outputDir].
 Which means that it's probably not always "java" (from Gradle's Java plugin) 
but could be some other name from another plugin. An additional parameter could 
solve this: {{(@Jars(value = ..., strategy = Gradle5Strategy.class, 
gradleSourceDirectorySetName = "java"))}}, which would assume "java" as a 
default if "gradleSourceDirectorySetName" is omitted.


> ApplicationComposers @Default 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