Знаток и зависимые модули

У нас возникла та же проблема с AWS с использованием экземпляра RHEL-7.4_HVM_GA-20170808-x86_64-2-Hourly2-GP2 (ami-bb9a6bc2)

, неожиданно возникла ошибка

: пакет : 1: java-1.8.0-openjdk-headless-1.8.0.201.b09-0.el7_6.x86_64 (rhui-REGION-rhel-server-release) Требуется: pcsc-lite-devel (x86-64) Вы можете попробовать использование --skip-broken для обхода проблемы Вы можете попробовать запустить: rpm -Va --nofiles --nodigest

Поскольку релиз не имеет контракта на поддержку с Redhat, мы несколько застряли [114 ]

У кого-нибудь есть подсказки, чтобы помочь нам? на данный момент мы обращаемся к внутренней скорости вращения, используя местоположение s3, т.е.

yum install -y https: // s3-xxxxxxx

50
задан Rich Seller 30 July 2009 в 09:10
поделиться

3 ответа

Я думаю, что причина того, что ваше желаемое поведение не было реализовано, заключается в следующем:

Предположим, я работаю над обоими проектами A и B. В настоящее время A не работает. Если бы разрешение зависимостей произошло так, как вы хотели бы, я бы никогда не смог построить B, пока A не будет исправлен. Поэтому мне нужно либо откатить свои изменения до A, либо сначала сосредоточиться на исправлении A. В любом случае, возможно, это не то, на чем я хочу сосредоточиться прямо сейчас.

Обычно B хочет работать с «последней хорошей» версией A, а не с последней. Использование зависимостей из репозитория означает, что они по крайней мере скомпилированы нормально (и, надеюсь, модульные тесты тоже были запущены).

25
ответ дан 7 November 2019 в 10:54
поделиться

С основным POM:

~ / scratch / pom.xml

<?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>

    <groupId>scratch</groupId>
    <artifactId>scratch</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>

    <modules>
        <module>nipple</module>
        <module>cabbage</module>
    </modules>
</project>

И POM модуля:

~ / scratch / nipple / pom.xml

<?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">

    <parent>
        <artifactId>scratch</artifactId>
        <groupId>scratch</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <groupId>scratch</groupId>
    <artifactId>nipple</artifactId>
    <version>1.0-SNAPSHOT</version>

</project>

~ / scratch / cabbage / pom.xml

<?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">

    <parent>
        <artifactId>scratch</artifactId>
        <groupId>scratch</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <groupId>scratch</groupId>
    <artifactId>cabbage</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>scratch</groupId>
            <artifactId>nipple</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

</project>

Я могу выпустить пакет mvn в корневом каталоге после очистки моего локального репозитория и в конечном итоге собрать все модули. (В пустые файлы JAR, но встроенные.)

Кажется, что Maven ищет зависимости либо в хранилище, либо в процессе сборки. Он не будет автоматически проходить через структуру вашего проекта, когда вы создаете только один модуль, потому что не обязательно, чтобы у вас был даже родительский проект на вашем компьютере, тем более на один каталог выше текущего модуля. (Отношения между родителями и детьми даже не биективны. )

Причина, по которой это так, может заключаться в том, что структура каталогов, в которой расположение модулей было бы предсказуемым, никоим образом не является обязательной. Даже несколько распространено и приемлемо, что макет для приведенного выше примера выглядит следующим образом:

projects
|
+--scratch
|  |
|  +--scratch-parent
|  |  |
|  |  +--pom.xml [The POM of scratch:scratch:1.0-SNAPSHOT]
|  |
|  +--nipple
|  |  |
|  |  +--pom.xml [The POM of scratch:mod1:1.0-SNAPSHOT]
|  |
|  +--cabbage
|  |  |
|  |  +--pom.xml [The POM of scratch:mod2:1.0-SNAPSHOT]

В этом случае раздел родительского POM будет:

<modules>
    <module>../nipple</module>
    <module>../cabbage</module>
</modules>

Обратите внимание, что ничего нет говоря , какой идентификатор артефакта находится в каком модуле. Он просто сообщает Maven, что это местоположения файловой системы, где можно искать другие артефакты, связанные с этой сборкой.

43
ответ дан 7 November 2019 в 10:54
поделиться

Взгляните на плагин Maven Reaction , в частности, response: make, который создает модуль и все модули от чего это зависит.

14
ответ дан 7 November 2019 в 10:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: