quapka created LOG4J2-3215:
------------------------------

             Summary: Gradle instructions for adding log4j as a dependency are 
outdated
                 Key: LOG4J2-3215
                 URL: https://issues.apache.org/jira/browse/LOG4J2-3215
             Project: Log4j 2
          Issue Type: Documentation
            Reporter: quapka
         Attachments: Dockerfile-1

I believe the 
[instructions|https://logging.apache.org/log4j/2.x/maven-artifacts.html#Using_Log4j_in_your_Gradle_build],
 are not up-to-date. The "directive" compile has been deprecated in favor of 
implementation [see 
here|https://tomgregory.com/gradle-implementation-vs-compile-dependencies/] and 
[here|https://stackoverflow.com/a/44493379/2377489].

I've tried setting up a hello-world Java application using Gradle and during 
gradle build I've got the following error:
{code:bash}
...
> Could not find method compile() for arguments 
> [{group=org.apache.logging.log4j, name=log4j-api, version=2.15.0}] on object 
> of type 
> org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
...
{code}
To test this locally I've set up a Dockerfile that showcases using both compile 
and implementation. Download the attached Dockerfile into a folder and can 
build the Docker container locally:
{code:bash}
 # DOCKER_BUILDKIT=1 is necessary because I use new Docker HEREDOC feature, see 
comments
 # in Dockerfile
$ DOCKER_BUILDKIT=1 docker build --tag log4j-docs .
{code}
Once built, run this to see the usage proposed by current docs:
{code:bash}
$ docker run -it log4j-docs ./use-compile.sh
{code}
Which fails. Then try the new version succeeds:
{code:bash}
$ docker run -it log4j-docs ./use-implementation.sh
{code}

See the Dockerfile for details.

Disclaimer:
I'm not a Javist and haven't been using Log4j nor Gradle, please, review 
carefully. This could be a simple docs change, but I don't know if older Gradle 
versions that could still use compile are still more adapted and therefore this 
documentation might not work for them. Maybe the docs could specify multiple 
Gradle build instructions? I am not the one to decide, just laying it out here.

Also, my first issue on Apache, let me know if there is something I should 
improve upon.

Duplicates
The following 
[search|https://issues.apache.org/jira/issues/?jql=project%20%3D%20LOG4J2%20AND%20text%20~%20%22gradle%20dependency%20docs%22%20ORDER%20BY%20created%20DESC]
 yielded 0 hits.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to