LINUX.ORG.RU

Как использовать maven без репозиториев?

 


0

3

Мне не нужен второй менеджер пакетов в системе, у меня уже один есть.
Я бы хотел отключить в maven глобальный репозиторий, все его зеркала и локальный репозиторий.
А система сборки - нужна. Может сразу вместо Maven лучше взять Ant, как более адекватный?

Это же не логично, копировать системную библиотеку в локальный репозиторий только потому, что мавену требуется её посчитать.

mvn install:install-file -Dfile=non-maven-proj.jar -DgroupId=some.group -DartifactId=non-maven-proj -Dversion=1 -Dpackaging=jar 

Допустим, можно запустить его с ключём -o, чтобы работал в offline и не лез в центральный репозиторий.

Но как ему отключить ${user.home}/.m2/repository ?

Пойду сейчас, и сотру <localRepository> в settings.xml

Боюсь, только, что не поможет…

Ты хочешь придать хоть какой-то смысл бесполезной работе по созданию пакетов для библиотек Java в дистрибутивах Linux?

Begemoth ★★★★★
()
Ответ на: комментарий от Begemoth

Не во всех дистрибутивах, а только в тех, которые заявляют, что они собирают бинарники из исходников.

Shushundr ★★★
() автор топика

Вообще не совсем понятно, что именно ты хочешь. Сохранить объявление зависимостей с использованием maven artefact id, но не использовать его репозитории? Или же тебя устроит вручную задавать classpath?

Begemoth ★★★★★
()
Ответ на: комментарий от Begemoth

не совсем понятно, что именно ты хочешь

Я хочу чтобы не было затягивания бинарников снаружи. Это значит, что репозитории использовать не надо. Дальше, если есть софт, уже собранный ранее, то надо его напрямую использовать, не надо его копировать в десять мест. Наверное это называется «вручную задать classpath», но я пока не настолько понимаю, как maven вообще работать должен.

Shushundr ★★★
() автор топика

Maven не копирует системные библиотеки в свой репозиторий, он управляет зависимости для вашего Java проекта, i.e. Java библиотеками. Мне думается вы что-то не так делаете. Вам ничто не мешает использовать Maven без указания зависимостей в pom.xml, если так хочется.

Ghostwolf ★★★★★
()
Последнее исправление: Ghostwolf (всего исправлений: 1)
Ответ на: комментарий от Shushundr

Тут видимо будет дистрибутиво специфично, в Debian /usr/share/maven-repo/ и можно попробовать его задать как единственный репозиторий.

Begemoth ★★★★★
()
Ответ на: комментарий от Ghostwolf

Maven не копирует системные библиотеки в свой репозиторий, он управляет зависимости для вашего Java проекта, i.e. Java библиотеками.

Да-да-да, вот у меня есть системный файл
/usr/share/jdbc-postgresql/lib/jdbc-postgresql.jar
что мне надо в pom.xml писать?

А то вот:

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>MyTestProject</artifactId>
    <version>0.0.1</version>

    <name>MyTestProject</name>
    <packaging>war</packaging>

    <properties>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <scope>system</scope>
            <systemPath>/usr/share/jdbc-postgresql/lib/jdbc-postgresql.jar</systemPath>
        </dependency>
    </dependencies>
</project>

$ mvn help:effective-pom

[INFO] Scanning for projects...
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[WARNING] 'dependencies.dependency.systemPath' for null:null:jar should use a variable instead of a hard-coded path /usr/share/jdbc-postgresql/lib/jdbc-postgresql.jar @ line 22, column 25
[ERROR] 'dependencies.dependency.artifactId' for null:null:jar is missing. @ line 20, column 21
[ERROR] 'dependencies.dependency.groupId' for null:null:jar is missing. @ line 20, column 21
[ERROR] 'dependencies.dependency.version' for null:null:jar is missing. @ line 20, column 21
Shushundr ★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 1)
Ответ на: комментарий от Ghostwolf

Вам ничто не мешает использовать Maven без указания зависимостей в pom.xml, если так хочется.

Мешают, сообщения об ошибках, выше вписал.

Shushundr ★★★
() автор топика

Просмотри, как в дебиане сделано.

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

aol ★★★★★
()

Нашел тут такую статью:
https://maven.apache.org/resolver/index.html
цитирую:
«Maven Artifact Resolver … is expected to be extended by a concrete repository implementation … other provider for other repository formats»

Мне нужен такой провайдер, который искал бы библиотеки, установленные пакетным менеджером Gentoo.

Shushundr ★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 1)
Ответ на: комментарий от aol

Я клоун? Это в генте, с 31 марта 2002 года прошло 22 года уже, и за это время ещё не научились java (с 1996)-приложения устанавливать!

Shushundr ★★★
() автор топика
Последнее исправление: Shushundr (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.