W jaki sposób ustawić profil produkcyjny i dev w mavenie, które są powiązane zależnością?

0

Cześć.
Buduje projekt spring boot + angular4 w mavenie, który składa się z 2 modułów "backend" i "frontend". Skonfigurowany jest w taki sposób, że podczas budowania projektu cały bundle z modułu "front" trafia do resource/static, które są w backend, ale to jest rozwiązanie na profil produkcyjny. Drugie rozwiązanie to profil "dev", żeby za każdym przebudowaniem backendu nie ciągnęło tez frontu, bo trwa to latami i angular stoi wtedy sobie na node jako proxy. Więc próbuję stworzyć 2 profile w mavenie do budowania projektu dev i prod. W tym celu w parent pom stworzyłem 2 profile. Dev ma zawierać tylko moduł backendowy, a prod oba moduły. Problem jest z tym, że w pomie backendu mam front jako dependencję, wrzuciłem je jako customowe propertiesy zdefiniowane w profilu w parencie, ale w child pom ide krzyczy mi, że "Cannot resolve symbol ...". Jak odpalam profil produkcyjny to działa ale dev nie ...(odpalam z komenda mvn clean install -P<profil>) W jaki sposób mogę to rozwiązać? Powyższe rozwiązanie znalazłem na stacku, ale jak widać nie jest dobre, czegoś pewnie brakuje w związku z zależnościami.
**
Parent POM:**

    <profiles>
        <profile>
            <id>prod</id>
            <modules>
                <module>backend</module>
                <module>frontend</module>
            </modules>
            <properties>
                <frontGroup>com.someGroup</frontGroup>
                <frontArtifact>frontend</frontArtifact>
                <frontVersion>${project.version}</frontVersion>
                <frontScope>runtime</frontScope>
            </properties>
        </profile>


        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>backend</module>
            </modules>
        </profile>
    </profiles>

backend POM:

 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--Cannot resolve symbol....-->
        <dependency>
            <groupId>${frontGroup}</groupId>
            <artifactId>${frontArtifact}</artifactId>
            <version>${project.version}</version>
            <scope>${frontScope}</scope>
        </dependency>

    </dependencies>

**Frontend POM: **zawiera plugin "frontend-maven-plugin" do instalacji pakietów, budowy projektu i wrzucania go do /static na backendzie.

0

Propertisów nie możesz wyciągnąć poza profil prod ?

0

@xLatency: no mógłbym ale wtedy ważne będą zawsze, a ja chcę dodawać dependencję "frontend" tylko wtedy gdy aktywny jest profil prod, kiedy dev to jej nie powinno tam być, bo backend podczas załączania zalezności się wysypie

1

Ok, rozumiem. Próbowałeś zdefiniować profile dev i prod w module backend pom.

0

Nie tego nie próbowałem, myślałem że profile w parencie muszą być deklarowane, tak przynajmniej na tutorialach jest, które sprawdzałem. Zaraz to obadam, to by ułatwiało sprawę.

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