Maven Multi-Module problem z zależnościami

0

Witam wszystkich,
od paru dni nie mogę rozgryźć poniżej opisanego problemu. W związku z tym postanowiłem zasięgnąć waszej pomocy.

Mianowicie parent POM:

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.0.RELEASE</version>
        <relativePath/>
    </parent>

    <groupId>pl.tscript3r</groupId>
    <artifactId>tracciato</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

    <properties>
        <java.version>11</java.version>
    </properties>

    <modules>
        <module>frontend</module>
        <module>backend</module>
        <module>backend-functional-tests</module>
    </modules>

</project>

backend POM:

<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>pl.tscript3r</groupId>
        <artifactId>tracciato</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

    <groupId>pl.tscript3r.tracciato</groupId>
    <artifactId>backend</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>backend</name>

</project>

backend-functional-tests POM:

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>pl.tscript3r</groupId>
        <artifactId>tracciato</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>

    <groupId>pl.tscript3r.tracciato</groupId>
    <artifactId>backend-functional-tests</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <dependencies>
        <dependency>
            <groupId>pl.tscript3r.tracciato</groupId>
            <artifactId>backend</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>pl.tscript3r.tracciato</groupId>
            <artifactId>backend</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>

Pominąłem moim zdaniem zbędne dodatkowe konfiguracje. Z racji, że do testów funkcjonalności używam zarówno klas testowych oraz produkcyjnych z modułu **backend ** aby unikać redundancji byłem zmuszony dodać dwie zależności do backend-functional-tests. Problem polega na tym, że według IntelliJ wszystko gra - można odpalić z jego poziomu testy w module backend-functional-tests i generalnie wszystko na zielono. Problem jednak pojawia się w momencie gdy odpalam mavena z poziomu IntelliJ bądź konsoli. W skrócie rezultat jakbym nie miał dodanych zależności:
screenshot-20191227140128.png

Miałem również wcześniej inne problemy z zależnościami z którymi udało się poradzić. Jeżeli chodzi o ten problem to próbowałem naprawdę co tylko udało mi się wygooglować w tym temacie i bez skutku. Z desperacji dla pewności sprawdziłem również czy nie jest to problem środowiskowy (co prawda przy okazji innego problemu, ale ten również już w tym czasie występował) na drugiej maszynie, usunąłem katalog .m2 oraz usunąłem katalog .idea i zaimportowałem projekt na nowo.

Znając życie wyjdzie, że nie zauważyłem czegoś prostego, bądź zwyczajnie niedostateczna wiedza w tym temacie. Gdyby jednak podane powyżej skrócone informacje były niestarczające link do całego repo: https://github.com/tscript3r/tracciato

1

A co mówi mvn clean test z poziomu konsoli (bez IntelliJ)?

0

Przechodzi bez błędów, będąc szczerym zawsze z automatu verify / install uruchamiam. W takim razie jak to ogarnąć aby działało za każdym razem niezależnie od goal? Zmieniając scope na provided, runtime dla zależności z modułu backend nie pomogło

1

W takim razie nie ma co kombinować z samym Mavenem, tylko trzeba ręcznie dokonfigurować projekt w IntelliJ - wskazać pakiet ze źródłami i takie tam. Zakładam, że wypisze Ci co mu nie pasuje.

U mnie apka startuje z poziomu IntelliJ (musiałem włączyć procesowanie adnotacji pod Lomboka):

2019-12-27 17:57:10.526  INFO 92261 --- [  restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2019-12-27 17:57:10.529  INFO 92261 --- [  restartedMain] pl.tscript3r.tracciato.Application       : Started Application in 3.381 seconds (JVM running for 3.997)
0

Działać działała, ale chodziło o to aby móc przy pomocy Mavena niezależnie od goal otrzymać "BUILD SUCCESS". W końcu znalazłem winowajce tego wszystkiego. Chodziło o spring-boot-maven-plugin i jego repackage - podpowiedź znalazłem tutaj - na chwilę obecną najzwyczajniej go wyrzuciłem z konfiguracji. Dodatkowo podczas odpalania testów w backend-functional-tests Spring nie mógł znaleźć komponentów z backend - spowodowane było to tym, że adnotacja @EnableAutoConfiguration była w klasie abstrakcyjnej. Gdy ją przeniosłem do klas rozszerzających wszystko działa jak należy. W każdym razie dziękuję za pomoc!

1 użytkowników online, w tym zalogowanych: 0, gości: 1