Как я могу иметь многомодульный проект Maven без указания версии повсюду?

myList = [[1]*4] * 3 создает один объект списка [1,1,1,1] в памяти и копирует его ссылку 3 раза. Это эквивалентно obj = [1,1,1,1]; myList = [obj]*3. Любая модификация obj будет отражена в трех местах, где obj упоминается в списке. Правильным утверждением будет:

myList = [[1]*4 for _ in range(3)]

или

myList = [[1 for __ in range(4)] for _ in range(3)]

. Важно отметить, что * оператор в основном используется для создания список литералов. Поскольку 1 является литералом, значит, obj =[1]*4 создаст [1,1,1,1], где каждый 1 будет атомарным, а не ссылкой 1, повторяемым 4 раза. Это означает, что если мы obj[2]=42, то obj станет [1,1,42,1] не [42,42,42,42], как могут предположить некоторые.

0
задан john01dav 24 March 2019 в 04:24
поделиться

2 ответа

Относительно вашего первого вопроса: вы можете создать родительский pom для всего вашего проекта. В этом родительском модуле вы можете добавить раздел dependencyManagement, где вы можете перечислить свои собственные модули с их версией. В ваших модулях вам нужно только указать зависимость без версии.

Вот пример:

в родительском pom:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>yourgroup</groupId>
            <artifactId>yourmoduleA</artifactId>
            <version>3.0.1-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>yourgroup</groupId>
            <artifactId>yourmoduleB</artifactId>
            <version>3.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>
</dependencyManagement>

, и если ваш модуль A использует модуль B, вы можете добавить в pom модуля A

     <dependencies>
        <dependency>
            <groupId>yourgroup</groupId>
            <artifactId>yourmoduleB</artifactId>
        </dependency>
    </dependencies>
0
ответ дан rloeffel 24 March 2019 в 04:24
поделиться

В вашем многомодульном проекте вы обычно используете только одну версию для всех модулей. Это означает, что вы можете определить зависимости между модулями с <version>${project.version}</version>, где свойство ${project.version}$ разрешается во время сборки. Maven собирает все модули в правильном порядке.

0
ответ дан JF Meier 24 March 2019 в 04:24
поделиться
Другие вопросы по тегам:

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