Вопрос, хочу добавить .jar библиотеку к maven проекту, чтобы потом jenkins собирался нормально.
Соответсвенно 2 вопроса:
Читал статью https://habrahabr.ru/company/lanit/blog/323008/ maven скомпилировал, в pom.xml dependecy прописал, не совсем понял момент:
Дать проекту знать, что репозиторий существует, и показать, где он находится, можно уже описанным способом, правда, с поправкой на то, что репозиторий локальный.
<repositories>
<repository>
<id>localrep</id>
<name>local repository</name>
<url>file:${project.basedir}/lib</url>
</repository>
</repositories>
Можете пожалуйста подсказать, на примере, что здесь написать - вроде сейчас работает, но поиск, как я понимаю, делает на компьютере с jenkins , т.е. в file:${project.basedir}
мы указываем путь на локалку используемого компьютера.
Как сделать чтобы он закачивал с другого компа?
И отсюда вытекает второй вопрос - если нужна открытая для внутренней локалки папка с "репозиторием", ее можно расшарить и указать в <url></url>
?
Перед ответом хочу сказать, что единственное решение противоречит идеологии maven. Правильным решением будет установка твоей библиотеки в удаленный maven-репозиторий (возможно корпоративный/закрытый), что делается при помощи команды deploy
.
А теперь о неправильном, но рабочем решении. В корне проекта, т.е. на одном уровне с папкой src создаешь папку (в примере это lib), в которую будут складироваться локальные библиотеки. Кладешь туда нужный тебе jar'ник. Далее делаешь dependecy со scope system
. Примерно так
<dependency>
<groupId>ru.stackoverflow.com</groupId>
<artifactId>megalib</artifactId>
<version>${project.version}</version>
<scope>system</scope>
<systemPath>${basedir}/lib/megalib.jar</systemPath>
</dependency>
Но тут есть два нюанса.
system
, то этот проект не будет добавлять в зависимые от него проекты транзистивные зависимости.выше предложенный вариант со скоупом систем имеет место быть, но ничто не мешает любую библиотеку инсталлировать в локальный репозитарии с реальными groupId, artifactId, version или выдуманными.. для вышеприведенного артефакта (с выдуманной версией 1.0.0) команда в консоли будет выглядеть так
mvn install:install-file -DgroupId=ru.stackoverflow.com -DartifactId=megalib -Dversion=1.0.0 -Dfile=megalib.jar -Dpackaging=jar -DgeneratePom=true
разумеется, чтобы это правильно отработало нужно, чтобы в path был прописан путь до maven'а и запускать нужно из того каталога, где находится megalib.jar
затем в pom файл вставляем зависимость
<dependency>
<groupId>ru.stackoverflow.com</groupId>
<artifactId>megalib</artifactId>
<version>1.0.0.</version>
</dependency>
и наслаждаемся
Как можно проверить, содержит ли словарь map1 все пары <Key, Value>, содержащиеся в map2?
Вот сделал имплементацию дагера и вроде как все работет, вот только context переменная не хочет инжектиться
Подскажите пожалуйста, как переписать фрагмент кода, используя вместо итератора цикл:
Делаю редактор кода The C language на платформе Java SwingКак изменить длину символа табуляции в JTextPane с 8 до 4 или 2