Maven не может прочитать ресурс подмодуля при вызове pom-агрегатора - PullRequest
0 голосов
/ 19 октября 2018

У меня есть несколько модулей, которые я запускаю "mvn clean install", и я должен поддерживать их порядок.Чтобы сделать мою жизнь проще и не нужно менять TFS или что-то еще, я подумал о создании агрегатора проекта , который будет иметь все мои sub-modules, пока они ничего не знают об этом aggregator.Структура моего проекта:

projectaggregator
|
+- submodule1
|
+- submodule2

aggregator / 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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.my.package</groupId>
    <artifactId>projectaggregator</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>Project Aggregator</name>

    <modules>
        <module>../submodule1</module>
        <!--<module>../submodule2</module>-->       
    </modules>
</project>

И сборка завершается с ошибкой:

[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] submodule1
[INFO] Project Aggregator
[INFO] 
[INFO] Using the MultiThreadedBuilder implementation with a thread count of 8
[INFO]                                                                         
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Building Project Aggregator 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] Building submodule1 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- swagger-codegen-maven-plugin:2.3.1:generate (default) @ submodule1 ---
[INFO] reading from src/main/resources/yaml/decision.yaml
[INFO] reading from src/main/resources/yaml/decision.yaml
[ERROR] failed to read resource listing
java.io.FileNotFoundException: src\main\resources\yaml\decision.yaml (The system cannot find the path specified)
    at java.io.FileInputStream.open0(Native Method)
...
[INFO] No .swagger-codegen-ignore file found.
[ERROR] java.lang.RuntimeException: missing swagger input or config! 

...
[INFO] --------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] 
[INFO] submodule1 ....................................... FAILURE [  3.983 s]
[INFO] Project Aggregator ............................... SUCCESS [  0.003 s]
[INFO] --------------------------------------------------------------------
[INFO] BUILD FAILURE

submodule1 / pom.xml:

...
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-codegen-maven-plugin</artifactId>
            <version>2.3.1</version>
        </dependency>
    ...

Очевидно, что submodule1 не удается найти ресурсы, так как мы запускаем submodule1 - aggregator.Есть ли способ разрешения relative path на ресурсы без изменения submodule1 pom файла?

1 Ответ

0 голосов
/ 15 марта 2019

Я столкнулся с той же проблемой при выполнении многомодульной сборки с Swagger.Очевидно ограничение с плагином swagger при просмотре путей к ресурсам.Мы можем обойти это, используя maven переменные ${project.basedir} в нашей конфигурации плагина:

<plugin>
    <groupId>io.swagger</groupId>
    <artifactId>swagger-codegen-maven-plugin</artifactId>
    <version>2.2.1</version>
    <executions><execution>
        <goals><goal>generate</goal></goals>
        <phase>generate-sources</phase>
        <configuration>
            <inputSpec>${project.basedir}/src/main/resources/yaml/decision.yaml</inputSpec>
        </configuration>
    </execution></executions>
</plugin>

Ссылка отсюда - https://github.com/swagger-api/swagger-codegen/issues/3583

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...