Maven 3 не обновляет зависимость снимка от локального репозитория

Я пытаюсь использовать внешнюю библиотеку внутри моего проекта Maven. Поскольку я хочу, чтобы проект собирался из коробки на любой машине, я не хочу использоватьmvn install решение. Поэтому я определил локальный репозиторий в моем pom.xml:

    <dependency>
        <groupId>com.test</groupId>
        <artifactId>fooLib</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    ....
    <repository>
        <id>in-project</id>
        <snapshots>
            <updatePolicy>always</updatePolicy>
            <enabled>true</enabled>
        </snapshots>
        <name>In Project Repo</name>
        <url>file://${project.basedir}/libRepo</url>
    </repository>

Проблема в том, когда я заменяю банку вlibRepo (без обновления номера версии, поскольку это просто еще один снимок), что этот обновленный файл не используется (старая версия из.m2 каталог используется вместо) даже дляmvn -U clean install Как заставить maven обновить эту банку?

РЕДАКТИРОВАТЬ: В соответствии сЧто такое снимок Maven и зачем он нам нужен? maven никогда не будет пытаться найти версию зависимости SNAPSHOT, «даже если версия этой библиотеки найдена в локальном хранилище». Что не так с моей настройкой?

Грязное решение: На основе ответа отСборка Maven 2 с зависимостями: jar под областью "system" не включен следующее расширение моего оригинального решения, кажется, работает:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-install-plugin</artifactId>
            <executions>
                <execution>
                    <id>hack-binary</id>
                    <phase>validate</phase>
                    <configuration>
                        <file>${repo.path.to.jar}</file>
                        <repositoryLayout>default</repositoryLayout>
                        <groupId>com.test</groupId>
                        <artifactId>fooLib</artifactId>
                        <version>1.0-SNAPSHOT</version>
                        <packaging>jar</packaging>
                        <generatePom>true</generatePom>
                    </configuration>
                    <goals>
                        <goal>install-file</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

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

Однако мне все еще неясно, почему обычный механизм «SNAPSHOT» не работает (то есть текущий грязный раствор будет работать также без локальных SNAPSHOT как локальных)..m2 РЕПО явно обновляется каждый раз). Есть ли более чистый способ?

РЕШЕНИЕ (основываясь на ответе и обсуждении Аарона): Проблема заключалась в том, что я пытался установить файл вlibRepo с помощьюinstall-file, Фактическое решение заключается в том, что если библиотека обновляется, используйте

mvn deploy:deploy-file -Dfile=fooLib.jar  -DgroupId=com.test \
    -DartifactId=fooLib -Dversion=1.0-SNAPSHOT -Dpackaging=jar \
    -Durl=file://..\libRepo -DrepositoryId=in-project

развернуть его в репо. После правильного развертывания maven правильно обрабатывает SNAPSHOT.

Ответы на вопрос(3)

Ваш ответ на вопрос