2016-08-16 5 views
2

установить мою баночку в локальный репозиторий с помощью команды:Можно ли удалить банку из локального хранилища без pom.xml?

mvn install:install-file -Dfile=aaa.jar -DgroupId=bbb -DartifactId=ccc -Dversion=1.0 -Dpackaging=jar 

Теперь я хочу удалить его из хранилища. Стараюсь команду:

mvn dependency:purge-local-repository -DmanualInclude=bbb-ccc 

Но получаю ошибку:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:purge-local-repository (default-cli): Goal requires a project to execute but there is no POM in this directory (...). Please verify you invoked Maven from the correct directory. -> [Help 1]

Затем я создаю pom.xml с данными:

<?xml version="1.0" encoding="UTF-8"?> 
<project> 
    <groupId>bbb</groupId> 
    <artifactId>ccc</artifactId> 
    <version>1.0</version> 
    <modelVersion>4.0.0</modelVersion> 
    <packaging>jar</packaging> 

    <properties> 
    <groupId>${project.groupId}</groupId> 
    <artifactId>${project.artifactId}</artifactId> 
    <version>${project.version}</version> 
    <packaging>${project.packaging}</packaging> 
    <file>aaa.jar</file> 
    </properties>  
</project> 

Теперь я могу удалить банку из репозитория. Но можно ли удалить командную строку без создания pom.xml?

Я использую 3.2.5 (windows x64).

+0

Как я знаю, вы не можете удалить файлы из репозитория по командной строке. Но вы можете сделать это вручную, удалив его из репозитория m2. – Jens

+0

Да, я знаю об этом - домашняя папка \ .m2 \ repository \ bbb \ ccc. Но, кажется, не «истинный» способ :-(... –

+0

Нет никакого «истинного» способа. Почему вы хотели бы удалить что-то из хранилища? – Jens

ответ

4

dependency:purge-local-repository цель, вплоть до текущей версии 2.10, должна быть выполнена по проекту Maven:

Requires a Maven project to be executed.

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

Однако с помощью этого плагина, можно указать параметр manualInclude, который удалит какую-либо зависимость, указанный в качестве groupId:artifactId:version или все версии groupId:artifactId или даже все под более groupId. Поэтому плагин может быть обновлен, чтобы не требовать выполнения проекта Maven.

Я пошел дальше, создал проблему JIRA MDEP-537, чтобы отследить это добавление и исправить это для версии 3.0.0.