The following easily reproduces this problem for me:
1) Checkout geode head revision of develop.
2) Create a maven project with these dependencies:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13-beta-3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.12.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>pl.pragmatists</groupId>
<artifactId>JUnitParams</artifactId>
<version>1.1.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.11.2</version>
</dependency>
<dependency>
<groupId>org.apache.geode</groupId>
<artifactId>geode-core</artifactId>
<version>1.9.0</version>
</dependency>
<dependency>
<groupId>org.apache.geode</groupId>
<artifactId>geode-junit</artifactId>
<version>1.9.0</version>
<scope>test</scope>
</dependency>
</dependencies>
3) Delete your .m2 directory
4) Install maven 3.6.1 (the very latest version)
5) Use mvn to build the maven project (this will create a .m2 directory)
$ mvn package
6) Go to your geode checkout and build it
The above 100% reproduces the following every time. If I delete either
mavenLocal or ~/.m2 then geode builds. I do not have an installation of
gradle. My ~/.gradle/gradle.properties can either be deleted or present.
I'm using JDK 1.8.0_202.
$ ./gradlew build -x test -x pmdMain -x javadoc
<klund@Kirks-MacBook-Pro>/Users/klund/dev/geode3 [554]$ ./gradlew build -x
test -x pmdMain -x javadoc
To honour the JVM settings for this build a new JVM will be forked. Please
consider using the daemon:
https://docs.gradle.org/5.4/userguide/gradle_daemon.html.
Daemon will be stopped at the end of the build stopping after processing
*> Task :geode-assembly:compileDistributedTestJava* FAILED
*> Task :extensions:geode-modules-session:compileIntegrationTestJava* FAILED
*> Task :geode-core:compileIntegrationTestJava* FAILED
FAILURE: Build completed with 3 failures.
1: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':geode-assembly:compileDistributedTestJava'.
> Could not resolve all files for configuration
':geode-assembly:distributedTestCompileClasspath'.
> Could not find log4j-core-tests.jar
(org.apache.logging.log4j:log4j-core:2.11.1).
Searched in the following locations:
file:/Users/klund/.m2/repository/org/apache/logging/log4j/log4j-core/2.11.1/log4j-core-2.11.1-tests.jar
> Could not find log4j-core-test-sources.jar
(org.apache.logging.log4j:log4j-core:2.11.1).
Searched in the following locations:
file:/Users/klund/.m2/repository/org/apache/logging/log4j/log4j-core/2.11.1/log4j-core-2.11.1-test-sources.jar
* Try:
Run with *--stacktrace* option to get the stack trace. Run with *--info* or
*--debug* option to get more log output. Run with *--scan* to get full
insights.
==============================================================================
2: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task
':extensions:geode-modules-session:compileIntegrationTestJava'.
> Could not resolve all files for configuration
':extensions:geode-modules-session:integrationTestCompileClasspath'.
> Could not find jetty-http-tests.jar
(org.eclipse.jetty:jetty-http:9.4.12.v20180830).
Searched in the following locations:
file:/Users/klund/.m2/repository/org/eclipse/jetty/jetty-http/9.4.12.v20180830/jetty-http-9.4.12.v20180830-tests.jar
* Try:
Run with *--stacktrace* option to get the stack trace. Run with *--info* or
*--debug* option to get more log output. Run with *--scan* to get full
insights.
==============================================================================
3: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':geode-core:compileIntegrationTestJava'.
> Could not resolve all files for configuration
':geode-core:integrationTestCompileClasspath'.
> Could not find log4j-core-tests.jar
(org.apache.logging.log4j:log4j-core:2.11.1).
Searched in the following locations:
file:/Users/klund/.m2/repository/org/apache/logging/log4j/log4j-core/2.11.1/log4j-core-2.11.1-tests.jar
> Could not find log4j-core-test-sources.jar
(org.apache.logging.log4j:log4j-core:2.11.1).
Searched in the following locations:
file:/Users/klund/.m2/repository/org/apache/logging/log4j/log4j-core/2.11.1/log4j-core-2.11.1-test-sources.jar
* Try:
Run with *--stacktrace* option to get the stack trace. Run with *--info* or
*--debug* option to get more log output. Run with *--scan* to get full
insights.
==============================================================================
* Get more help at *https://help.gradle.org <https://help.gradle.org>*
Deprecated Gradle features were used in this build, making it incompatible
with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See
https://docs.gradle.org/5.4/userguide/command_line_interface.html#sec:command_line_warnings
*BUILD FAILED* in 57s
389 actionable tasks: 46 executed, 86 from cache, 257 up-to-date
On Wed, May 8, 2019 at 1:29 PM Kirk Lund <[email protected]> wrote:
> I'll assign the bug to you so you can decide if you want to close it or
> try to fix it...
>
> On Wed, May 8, 2019 at 1:26 PM Kirk Lund <[email protected]> wrote:
>
>> Other people including Barry have run into it as well.
>>
>> No, I'm not using --offline, but I will try --refresh-dependencies. The
>> only thing *weird* that I'm doing is building a composite build for one
>> of my checkouts.
>>
>> I'm sure I can find a way to fix it for myself if you believe we need to
>> use mavenLocal.
>>
>> Thanks,
>> Kirk
>>
>> On Wed, May 8, 2019 at 12:41 PM Patrick Rhomberg <[email protected]>
>> wrote:
>>
>>> It is strange to me that your build is *only* looking in Maven-local.
>>> You're not building with --offline, are you? Does running with
>>> --refresh-dependencies resolve this issue when you have it?
>>>
>>> Is anything fiddling with your ~/.m2/repository without updating the
>>> corresponding maven xml entries? It seems to me like your local Maven
>>> xml
>>> records believes it should have an artifact, but then the expected file
>>> isn't present on disk.
>>>
>>> I don't think the forum thread you found is still relevant. That thread
>>> points to GRADLE-2709, which has been fixed since Gradle 1.9.
>>>
>>> All that said, if you don't want to use your local ~/.m2, that's your
>>> business. If that folder doesn't exist, the presence of mavenLocal()
>>> shouldn't
>>> have any effect. But some of us are making use of it.
>>>
>>> On Wed, May 8, 2019 at 12:24 PM Robert Houghton <[email protected]>
>>> wrote:
>>>
>>> > Jake, my understanding is that benchmarks does not need geode to be
>>> able to
>>> > pull resources from Maven local. Benchmarks is an external wrapper that
>>> > executes geode commands, right?
>>> >
>>> > On Wed, May 8, 2019, 12:12 Jacob Barrett <[email protected]> wrote:
>>> >
>>> > > Maven local is necessary for some of our other build processes like
>>> > > benchmarks.
>>> > >
>>> > > Is there no other way to correct this issue. I have never run into
>>> this
>>> > > issue.
>>> > >
>>> > > -jake
>>> > >
>>> > >
>>> > > > On May 8, 2019, at 10:13 AM, Kirk Lund <[email protected]> wrote:
>>> > > >
>>> > > > I'd like like to remove mavelLocal the Geode gradle files.
>>> > > >
>>> > > > GEODE-6753: Use of mavenLocal in gradle may cause build to fail
>>> with
>>> > > > missing tests dependencies
>>> > > > https://issues.apache.org/jira/browse/GEODE-6753
>>> > > >
>>> > > > Thanks,
>>> > > > Kirk
>>> > >
>>> >
>>>
>>