Maven `project.basedir` не соблюдается в дистрибутиве - PullRequest
1 голос
/ 07 августа 2020

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

   <distributionManagement>
        <repository>
            <id>internal-repository</id>
            <name>Internal Repository Releases</name>
            <url>file://${project.basedir}/releases</url>
        </repository>
    </distributionManagement>

, и я ожидал, что releases будет в папке проекта root с банкой в ​​нем, но кажется, что он помещается в цель Вместо этого / checkout / folder ..

Проект расположен по адресу /Users/pgomez/sources/pweb/, и после запуска mvn clean release:prepare release:perform -e в журналах я вижу:

[INFO] Uploaded: file:///Users/pgomez/sources/pweb/target/checkout/releases/com/pweb/pweb/0.16/pweb-0.16.jar (2.0 MB at 14 MB/s)

Почему это происходит? Я что-то упускаю? Я ожидал, что он будет по адресу:

/Users/pgomez/sources/pweb/releases/com/pweb/pweb/0.16/pweb-0.16.jar

Кроме того, это правильный подход? Должен ли я просто взять банку из своей локальной папки ~/.m2/?

1 Ответ

1 голос
/ 07 августа 2020

Когда вы запускаете плагин выпуска Maven, он выполняет полную проверку вашего проекта в target/checkout и строит выпуск из этой проверки. Во время этой сборки ${project.basedir} - это каталог checkout внутри target.

Если вы хотите запустить плагин выпуска Maven без Nexus / Artifactory, я бы использовал фиксированный каталог в вашей системе как «репозиторий», а не что-то относительно каталога проекта.

...