Here are the details on the build error I'm having in Maven 2.0.6
alex@Apollonius ~/projects/arete/arete-all/arete-core
$ mvn test
[INFO] Scanning for projects...
[INFO] -------------------------------------------------------------------------
---
[INFO] Building arete-core
[INFO] task-segment: [test]
[INFO] -------------------------------------------------------------------------
---
[INFO] [resources:resources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:compile]
[INFO] Nothing to compile - all classes are up to date
[INFO] [resources:testResources]
[INFO] Using default encoding to copy filtered resources.
[INFO] [compiler:testCompile]
[INFO] Nothing to compile - all classes are up to date
[INFO] [surefire:test]
[INFO] Setting reports dir: c:\dev\projects\arete\arete-all\arete-core\target/su
refire-reports
-------------------------------------------------------
T E S T S
-------------------------------------------------------
[surefire] Running org.eremite.arete.core.CorePerformanceTest
[surefire] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.04 sec
[surefire] Running org.eremite.arete.core.HypothesisAPITest
[surefire] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 0 sec
[surefire] Running org.eremite.arete.core.HypothesisBootstrapTest
[surefire] Tests run: 2, Failures: 0, Errors: 2, Time elapsed: 0.08 sec <<<<<<<<
FAILURE !!
w00t! Gotta love PicoContainer.
w00t! Gotta love PicoContainer.
w00t! Gotta love PicoContainer.
[surefire] Running org.eremite.arete.core.PicoContainerTest
[surefire] Tests run: 3, Failures: 0, Errors: 0, Time elapsed: 0.01 sec
[surefire] Running org.eremite.arete.core.SerializationTest
[surefire] Tests run: 4, Failures: 0, Errors: 4, Time elapsed: 0.2 sec <<<<<<<<
FAILURE !!
java.io.BufferedInputStream@a77106
java.io.BufferedInputStream@1e1dadb
[surefire] Running org.eremite.arete.core.throughput.ThroughputTest
[surefire] Tests run: 2, Failures: 0, Errors: 2, Time elapsed: 0.02 sec <<<<<<<<
FAILURE !!
[surefire] Running org.eremite.arete.core.wrappers.WrapperFactoryTest
[surefire] Tests run: 4, Failures: 0, Errors: 4, Time elapsed: 0.02 sec <<<<<<<<
FAILURE !!
[surefire] Running org.eremite.arete.examples.baseball.BaseballTest
[surefire] Tests run: 2, Failures: 0, Errors: 2, Time elapsed: 0.03 sec <<<<<<<<
FAILURE !!
Results :
[surefire] Tests run: 20, Failures: 0, Errors: 14
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] There are some test failure.
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Sun Apr 15 13:25:24 CDT 2007
[INFO] Final Memory: 3M/6M
[INFO] ------------------------------------------------------------------------
This is one of my surefire reports. It is reporting a NoClassDefFoundError.
java.lang.NoClassDefFoundError: org/eremite/arete/core/Premise
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.lang.ClassLoader.defineClass(ClassLoader.java:465)
at org.eremite.arete.core.PremiseFactory$DirectLoader.load(PremiseFactory.java:221)
at org.eremite.arete.core.PremiseFactory.getPremise(PremiseFactory.java:73)
at org.eremite.arete.core.HypothesisBootstrapTest.testPremiseRegistration(HypothesisBootstrapTest.java:106)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at junit.framework.TestCase.runTest(TestCase.java:154)
. . .
Here is the source of my pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.eremite.arete</groupId>
<artifactId>arete-core</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT-05</version>
<name>arete-core</name>
<url>http://sf.net/projects/arete</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>picocontainer</groupId>
<artifactId>picocontainer</artifactId>
<version>1.1</version>
</dependency>
<!-- dependency>
<groupId>org.eremite.arete</groupId>
<artifactId>arete-core</artifactId>
<version>1.0-SNAPSHOT-04</version>
<scope>test</scope>
</dependency-->
</dependencies>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
<directory>target</directory>
<outputDirectory>target/classes</outputDirectory>
<testOutputDirectory>target/test-classes</testOutputDirectory>
<finalName>${artifactId}-${version}</finalName>
<testResources>
<testResource>
<directory>src/test/etc</directory>
<includes>
<include>**/*.xml</include>
<include>**/*.properties</include>
</includes>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>false</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Here is my file structure:
alex@Apollonius ~/projects/arete/arete-all/arete-core
$ ls -R src
src:
main test
src/main:
java
src/main/java:
org
src/main/java/org:
eremite
src/main/java/org/eremite:
arete
src/main/java/org/eremite/arete:
core io
src/main/java/org/eremite/arete/core:
AlphaCore.java DefaultEngine.java HypothesisInfo.java
ComponentArchive.java DefaultHypothesisComparator.java Premise.java
Consequence.java Engine.java PremiseFactory.java
ConsequenceFactory.java EngineFactory.java PremiseInfo.java
ConsequenceInfo.java Hopper.java
Core.java Hypothesis.java
src/main/java/org/eremite/arete/io:
UnsupportedSyntaxException.java XMLReader.java
src/test:
etc java
src/test/etc:
org
src/test/etc/org:
eremite
src/test/etc/org/eremite:
arete
src/test/etc/org/eremite/arete:
core examples
src/test/etc/org/eremite/arete/core:
aporetics throughput wrappers
src/test/etc/org/eremite/arete/core/aporetics:
aporetics.xml
src/test/etc/org/eremite/arete/core/throughput:
throughput.xml
src/test/etc/org/eremite/arete/core/wrappers:
src/test/etc/org/eremite/arete/examples:
baseball
src/test/etc/org/eremite/arete/examples/baseball:
baseball.xml
src/test/java:
org
src/test/java/org:
eremite
src/test/java/org/eremite:
arete
src/test/java/org/eremite/arete:
core examples
src/test/java/org/eremite/arete/core:
CorePerformanceTest.java PicoContainerTest.java throughput
HypothesisAPITest.java SerializationTest.java wrappers
HypothesisBootstrapTest.java aporetics
src/test/java/org/eremite/arete/core/aporetics:
aporetics.xml
src/test/java/org/eremite/arete/core/throughput:
CountMonitor.java CountingActions.java throughput.xml
Counter.java ThroughputTest.java
src/test/java/org/eremite/arete/core/wrappers:
AbstractConsequence.java Student.java
AbstractPremise.java WrapperFactoryTest.java
src/test/java/org/eremite/arete/examples:
baseball
src/test/java/org/eremite/arete/examples/baseball:
BaseballTest.java Cup.java Juice.java PlayerActions.java baseball.xml
CoachActions.java Fruit.java Player.java PlayerMonitor.java
I have read--scoured, really--the Maven 2.0 documentation, Google, read several articles on building the POM.xml, and have found nothing to help me answer this. I even manually copied the .class files from my target/classes into my target/test-classes directory to see if that would help. It did not. For some reason, the test classes are not seeing the main classes.
My build works fine in maven 1.3 and in IntelliJ IDEA. I must have something wrong in my pom.xml