logic: fixed Maven setup not working for project without sub-modules

This commit is contained in:
mlangkabel
2018-01-08 16:38:31 +01:00
parent 5bd37772fe
commit 978cf4f4ed
14 changed files with 429 additions and 1 deletions
@@ -0,0 +1,25 @@
<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>
<parent>
<artifactId>nested_maven_project</artifactId>
<groupId>com.mycompany.app</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.mycompany.app</groupId>
<artifactId>module_1</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>module_1</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
@@ -0,0 +1,13 @@
package com.mycompany.app;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}
@@ -0,0 +1,38 @@
package com.mycompany.app;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* Unit test for simple App.
*/
public class AppTest
extends TestCase
{
/**
* Create the test case
*
* @param testName name of the test case
*/
public AppTest( String testName )
{
super( testName );
}
/**
* @return the suite of tests being tested
*/
public static Test suite()
{
return new TestSuite( AppTest.class );
}
/**
* Rigourous Test :-)
*/
public void testApp()
{
assertTrue( true );
}
}
@@ -0,0 +1,25 @@
<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>
<parent>
<artifactId>nested_maven_project</artifactId>
<groupId>com.mycompany.app</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>com.mycompany.app</groupId>
<artifactId>module_2</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>module_1</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
@@ -0,0 +1,13 @@
package com.mycompany.app;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}
@@ -0,0 +1,38 @@
package com.mycompany.app;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* Unit test for simple App.
*/
public class AppTest
extends TestCase
{
/**
* Create the test case
*
* @param testName name of the test case
*/
public AppTest( String testName )
{
super( testName );
}
/**
* @return the suite of tests being tested
*/
public static Test suite()
{
return new TestSuite( AppTest.class );
}
/**
* Rigourous Test :-)
*/
public void testApp()
{
assertTrue( true );
}
}
@@ -0,0 +1,15 @@
<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>
<modules>
<module>module_1</module>
<module>module_2</module>
</modules>
<groupId>com.mycompany.app</groupId>
<artifactId>nested_maven_project</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>nested_maven_project</name>
<url>http://maven.apache.org</url>
</project>
@@ -0,0 +1,18 @@
<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>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>my-app</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
@@ -0,0 +1,13 @@
package com.mycompany.app;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{
System.out.println( "Hello World!" );
}
}
@@ -0,0 +1,38 @@
package com.mycompany.app;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* Unit test for simple App.
*/
public class AppTest
extends TestCase
{
/**
* Create the test case
*
* @param testName name of the test case
*/
public AppTest( String testName )
{
super( testName );
}
/**
* @return the suite of tests being tested
*/
public static Test suite()
{
return new TestSuite( AppTest.class );
}
/**
* Rigourous Test :-)
*/
public void testApp()
{
assertTrue( true );
}
}
+76
View File
@@ -29,6 +29,82 @@ TextAccess.cpp WARNING: Tried to access index 10. Maximum index is 8
TextAccess.cpp WARNING: Tried to access index 10. Maximum index is 8
TextAccess.cpp WARNING: Line numbers start with one, is 0
TextAccess.cpp WARNING: Line numbers start with one, is 0
utilityMaven.cpp INFO: Fetching source directories in "project -> build -> sourceDirectory".
utilityMaven.cpp INFO: Found 1 source directories.
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/simple_maven_project/src/main/java".
utilityMaven.cpp INFO: Fetching source directories in "projects -> project -> build -> sourceDirectory".
utilityMaven.cpp INFO: Found 0 source directories.
utilityMaven.cpp INFO: Fetching source directories in "project -> build -> directory".
utilityMaven.cpp INFO: Found 1 source directories.
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/simple_maven_project/target/generated-sources".
utilityMaven.cpp INFO: Fetching source directories in "projects -> project -> build -> directory".
utilityMaven.cpp INFO: Found 0 source directories.
utilityMaven.cpp INFO: Found 1 of 2 directories on system.
utilityMaven.cpp INFO: Fetching source directories in "project -> build -> sourceDirectory".
utilityMaven.cpp INFO: Found 1 source directories.
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/simple_maven_project/src/main/java".
utilityMaven.cpp INFO: Fetching source directories in "projects -> project -> build -> sourceDirectory".
utilityMaven.cpp INFO: Found 0 source directories.
utilityMaven.cpp INFO: Fetching source directories in "project -> build -> directory".
utilityMaven.cpp INFO: Found 1 source directories.
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/simple_maven_project/target/generated-sources".
utilityMaven.cpp INFO: Fetching source directories in "projects -> project -> build -> directory".
utilityMaven.cpp INFO: Found 0 source directories.
utilityMaven.cpp INFO: Fetching source directories in "project -> build -> testSourceDirectory".
utilityMaven.cpp INFO: Found 1 source directories.
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/simple_maven_project/src/test/java".
utilityMaven.cpp INFO: Fetching source directories in "projects -> project -> build -> testSourceDirectory".
utilityMaven.cpp INFO: Found 0 source directories.
utilityMaven.cpp INFO: Fetching source directories in "project -> build -> directory".
utilityMaven.cpp INFO: Found 1 source directories.
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/simple_maven_project/target/generated-test-sources".
utilityMaven.cpp INFO: Fetching source directories in "projects -> project -> build -> directory".
utilityMaven.cpp INFO: Found 0 source directories.
utilityMaven.cpp INFO: Found 2 of 4 directories on system.
utilityMaven.cpp INFO: Fetching source directories in "project -> build -> sourceDirectory".
utilityMaven.cpp INFO: Found 0 source directories.
utilityMaven.cpp INFO: Fetching source directories in "projects -> project -> build -> sourceDirectory".
utilityMaven.cpp INFO: Found 3 source directories.
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/nested_maven_project/module_2/src/main/java".
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/nested_maven_project/module_1/src/main/java".
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/nested_maven_project/src/main/java".
utilityMaven.cpp INFO: Fetching source directories in "project -> build -> directory".
utilityMaven.cpp INFO: Found 0 source directories.
utilityMaven.cpp INFO: Fetching source directories in "projects -> project -> build -> directory".
utilityMaven.cpp INFO: Found 3 source directories.
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/nested_maven_project/module_2/target/generated-sources".
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/nested_maven_project/module_1/target/generated-sources".
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/nested_maven_project/target/generated-sources".
utilityMaven.cpp INFO: Found 2 of 6 directories on system.
utilityMaven.cpp INFO: Fetching source directories in "project -> build -> sourceDirectory".
utilityMaven.cpp INFO: Found 0 source directories.
utilityMaven.cpp INFO: Fetching source directories in "projects -> project -> build -> sourceDirectory".
utilityMaven.cpp INFO: Found 3 source directories.
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/nested_maven_project/module_2/src/main/java".
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/nested_maven_project/module_1/src/main/java".
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/nested_maven_project/src/main/java".
utilityMaven.cpp INFO: Fetching source directories in "project -> build -> directory".
utilityMaven.cpp INFO: Found 0 source directories.
utilityMaven.cpp INFO: Fetching source directories in "projects -> project -> build -> directory".
utilityMaven.cpp INFO: Found 3 source directories.
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/nested_maven_project/module_2/target/generated-sources".
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/nested_maven_project/module_1/target/generated-sources".
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/nested_maven_project/target/generated-sources".
utilityMaven.cpp INFO: Fetching source directories in "project -> build -> testSourceDirectory".
utilityMaven.cpp INFO: Found 0 source directories.
utilityMaven.cpp INFO: Fetching source directories in "projects -> project -> build -> testSourceDirectory".
utilityMaven.cpp INFO: Found 3 source directories.
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/nested_maven_project/module_2/src/test/java".
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/nested_maven_project/module_1/src/test/java".
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/nested_maven_project/src/test/java".
utilityMaven.cpp INFO: Fetching source directories in "project -> build -> directory".
utilityMaven.cpp INFO: Found 0 source directories.
utilityMaven.cpp INFO: Fetching source directories in "projects -> project -> build -> directory".
utilityMaven.cpp INFO: Found 3 source directories.
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/nested_maven_project/module_2/target/generated-test-sources".
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/nested_maven_project/module_1/target/generated-test-sources".
utilityMaven.cpp INFO: Found directory "C:/sourcetrail/sourcetrail/bin/test/data/UtilityMavenTestSuite/nested_maven_project/target/generated-test-sources".
utilityMaven.cpp INFO: Found 4 of 12 directories on system.
INFO: Indexer - indexing source file: input.cc
INFO: Indexer - using language standard 1.8
INFO: Indexer - indexing source file: input.cc
+1 -1
View File
@@ -127,7 +127,7 @@ namespace utility
size_t startLine = 0;
for (size_t i = 1; i <= outputAccess->getLineCount(); i++)
{
if (utility::isPrefix("<?xml", utility::trim(outputAccess->getLine(i))))
if (utility::isPrefix("<", utility::trim(outputAccess->getLine(i))))
{
startLine = i;
break;
+1
View File
@@ -33,6 +33,7 @@ add_files(
StorageTestSuite.h
TaskSchedulerTestSuite.h
TextAccessTestSuite.h
UtilityMavenTestSuite.h
UtilityStringTestSuite.h
Vector2TestSuite.h
+115
View File
@@ -0,0 +1,115 @@
#include "cxxtest/TestSuite.h"
#include "utility/file/FilePath.h"
#include "utility/utilityMaven.h"
#include "utility/utilityPathDetection.h"
class UtilityMavenTestSuite : public CxxTest::TestSuite
{
public:
void test_maven_path_detector_is_working()
{
std::shared_ptr<PathDetector> mavenPathDetector = utility::getMavenExecutablePathDetector();
TS_ASSERT(mavenPathDetector->isWorking());
}
void test_maven_wrapper_detects_source_directories_of_simple_projects()
{
std::shared_ptr<PathDetector> mavenPathDetector = utility::getMavenExecutablePathDetector();
TS_ASSERT(!mavenPathDetector->getPaths().empty());
if (!mavenPathDetector->getPaths().empty())
{
std::vector<FilePath> result = utility::mavenGetAllDirectoriesFromEffectivePom(
mavenPathDetector->getPaths().front(), FilePath("data/UtilityMavenTestSuite/simple_maven_project"), false
);
TS_ASSERT(utility::containsElement<FilePath>(
result, FilePath("data/UtilityMavenTestSuite/simple_maven_project/src/main/java").makeAbsolute()
));
TS_ASSERT(!utility::containsElement<FilePath>(
result, FilePath("data/UtilityMavenTestSuite/simple_maven_project/src/test/java").makeAbsolute()
));
}
}
void test_maven_wrapper_detects_source_and_test_directories_of_simple_projects()
{
std::shared_ptr<PathDetector> mavenPathDetector = utility::getMavenExecutablePathDetector();
TS_ASSERT(!mavenPathDetector->getPaths().empty());
if (!mavenPathDetector->getPaths().empty())
{
std::vector<FilePath> result = utility::mavenGetAllDirectoriesFromEffectivePom(
mavenPathDetector->getPaths().front(), FilePath("data/UtilityMavenTestSuite/simple_maven_project"), true
);
TS_ASSERT(utility::containsElement<FilePath>(
result, FilePath("data/UtilityMavenTestSuite/simple_maven_project/src/main/java").makeAbsolute()
));
TS_ASSERT(utility::containsElement<FilePath>(
result, FilePath("data/UtilityMavenTestSuite/simple_maven_project/src/test/java").makeAbsolute()
));
}
}
void test_maven_wrapper_detects_source_directories_of_nested_modules()
{
std::shared_ptr<PathDetector> mavenPathDetector = utility::getMavenExecutablePathDetector();
TS_ASSERT(!mavenPathDetector->getPaths().empty());
if (!mavenPathDetector->getPaths().empty())
{
std::vector<FilePath> result = utility::mavenGetAllDirectoriesFromEffectivePom(
mavenPathDetector->getPaths().front(), FilePath("data/UtilityMavenTestSuite/nested_maven_project"), false
);
TS_ASSERT(utility::containsElement<FilePath>(
result, FilePath("data/UtilityMavenTestSuite/nested_maven_project/module_1/src/main/java").makeAbsolute()
));
TS_ASSERT(utility::containsElement<FilePath>(
result, FilePath("data/UtilityMavenTestSuite/nested_maven_project/module_2/src/main/java").makeAbsolute()
));
TS_ASSERT(!utility::containsElement<FilePath>(
result, FilePath("data/UtilityMavenTestSuite/nested_maven_project/module_1/src/test/java").makeAbsolute()
));
TS_ASSERT(!utility::containsElement<FilePath>(
result, FilePath("data/UtilityMavenTestSuite/nested_maven_project/module_2/src/test/java").makeAbsolute()
));
}
}
void test_maven_wrapper_detects_source_and_test_directories_of_nested_modules()
{
std::shared_ptr<PathDetector> mavenPathDetector = utility::getMavenExecutablePathDetector();
TS_ASSERT(!mavenPathDetector->getPaths().empty());
if (!mavenPathDetector->getPaths().empty())
{
std::vector<FilePath> result = utility::mavenGetAllDirectoriesFromEffectivePom(
mavenPathDetector->getPaths().front(), FilePath("data/UtilityMavenTestSuite/nested_maven_project"), true
);
TS_ASSERT(utility::containsElement<FilePath>(
result, FilePath("data/UtilityMavenTestSuite/nested_maven_project/module_1/src/main/java").makeAbsolute()
));
TS_ASSERT(utility::containsElement<FilePath>(
result, FilePath("data/UtilityMavenTestSuite/nested_maven_project/module_2/src/main/java").makeAbsolute()
));
TS_ASSERT(utility::containsElement<FilePath>(
result, FilePath("data/UtilityMavenTestSuite/nested_maven_project/module_1/src/test/java").makeAbsolute()
));
TS_ASSERT(utility::containsElement<FilePath>(
result, FilePath("data/UtilityMavenTestSuite/nested_maven_project/module_2/src/test/java").makeAbsolute()
));
}
}
};