Как добавить локальные файлы JAR в проект Maven?

Как добавить локальные файлы JAR (еще не являющиеся частью репозитория Maven) непосредственно в исходные коды моего проекта?

38 ответов

Решение

Установите JAR в ваш локальный репозиторий Maven следующим образом:

mvn install:install-file \
   -Dfile=<path-to-file> \
   -DgroupId=<group-id> \
   -DartifactId=<artifact-id> \
   -Dversion=<version> \
   -Dpackaging=<packaging> \
   -DgeneratePom=true

Где каждый относится к:

<путь к файлу>: путь к файлу для загрузки, например -> c:\kaptcha-2.3.jar

<идентификатор группы>: группа, в которой файл должен быть зарегистрирован, например, -> com.google.code

<идентификатор артефакта>: имя артефакта для файла, например -> капча

<версия>: версия файла, например -> 2.3

<упаковка>: упаковка файла, например -> банка

Ссылка

Вы можете добавить локальные зависимости напрямую (как упоминалось в проекте build maven с включенными в него библиотеками) следующим образом:

<dependency>
    <groupId>com.sample</groupId>
    <artifactId>sample</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>${project.basedir}/src/main/resources/yourJar.jar</systemPath>
</dependency>

Во-первых, я хотел бы отдать должное этому ответу анонимному пользователю stackru - я почти уверен, что уже видел подобный ответ здесь - но сейчас я не могу его найти.

Наилучшим вариантом для использования локальных jar-файлов в качестве зависимости является создание локального репозитория maven. Такое репо - не что иное, как правильная структура каталогов с файлами pom в нем.

На моем примере: у меня есть мастер-проект на ${master_project} местоположение и subroject1 включен ${master_project}/${subproject1}

Затем я создаю хранилище MVN в:${master_project}/local-maven-repo

В pom файл в подпроекте1 находится ${master_project}/${subproject1}/pom.xml необходимо указать репозиторий, который будет принимать путь к файлу в качестве параметра url:

<repositories>
    <repository>
        <id>local-maven-repo</id>
        <url>file:///${project.parent.basedir}/local-maven-repo</url>
    </repository>
</repositories>

Зависимость может быть указана как для любого другого хранилища. Это делает ваш репозиторий POM независимым. Например, когда требуемый jar доступен в maven central, вам просто нужно удалить его из локального репо, и он будет извлечен из репо по умолчанию.

    <dependency>
        <groupId>org.apache.felix</groupId>
        <artifactId>org.apache.felix.servicebinder</artifactId>
        <version>0.9.0-SNAPSHOT</version>
    </dependency>

Последнее, но не менее важное, это добавление jar-файла в локальный репозиторий с помощью ключа -DlocalRepositoryPath, как здесь:

mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file  \
    -Dfile=/some/path/on/my/local/filesystem/felix/servicebinder/target/org.apache.felix.servicebinder-0.9.0-SNAPSHOT.jar \
    -DgroupId=org.apache.felix -DartifactId=org.apache.felix.servicebinder \
    -Dversion=0.9.0-SNAPSHOT -Dpackaging=jar \
    -DlocalRepositoryPath=${master_project}/local-maven-repo

Onece jar-файл установлен таким образом, что mvn repo может быть передан в репозиторий кода, и вся установка не зависит от системы. ( рабочий пример в github)

Я согласен, что использование JAR-файлов для репо с исходным кодом не является хорошей практикой, но в реальной жизни быстрое и грязное решение иногда лучше, чем полноценное репозиторий Nexus, для размещения одного jar-файла, который вы не можете опубликовать.

Создайте новую папку, скажем local-maven-repo в корне вашего проекта Maven.

Просто добавьте локальный репо внутри вашего <project> вашей pom.xml:

<repositories>
    <repository>
        <id>local-maven-repo</id>
        <url>file:///${project.basedir}/local-maven-repo</url>
    </repository>
</repositories>

Затем для каждого внешнего jar, который вы хотите установить, перейдите в корень вашего проекта и выполните:

mvn deploy:deploy-file -DgroupId=[GROUP] -DartifactId=[ARTIFACT] -Dversion=[VERS] -Durl=file:./local-maven-repo/ -DrepositoryId=local-maven-repo -DupdateReleaseInfo=true -Dfile=[FILE_PATH]

Я хотел бы такое решение - использовать maven-install-plugin в файле pom:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-install-plugin</artifactId>
            <version>2.5.2</version>
            <executions>
                <execution>
                    <phase>initialize</phase>
                    <goals>
                        <goal>install-file</goal>
                    </goals>
                    <configuration>
                        <file>lib/yourJar.jar</file>
                        <groupId>com.somegroup.id</groupId>
                        <artifactId>artefact-id</artifactId>
                        <version>x.y.z</version>
                        <packaging>jar</packaging>
                    </configuration>
                </execution>
            </executions>
        </plugin>

В этом случае вы можете выполнить mvn initialize и jar будет установлен в локальном репозитории Maven. Теперь этот jar-файл доступен во время любого шага maven на этом компьютере (не забудьте включить эту зависимость как любую другую зависимость maven в pom с <dependency></dependency> тег). Можно также установить банку, чтобы не initialize шаг, но любой другой шаг вам нравится.

Очень быстрый и грязный способ - указать на локальный файл:

<dependency>
      <groupId>sample</groupId>  
       <artifactId>com.sample</artifactId>  
       <version>1.0</version> 
      <scope>system</scope>
      <systemPath>C:\DEV\myfunnylib\yourJar.jar</systemPath>
</dependency>

Однако это будет жить только на вашей машине (очевидно), для совместного использования обычно имеет смысл использовать надлежащий архив m2 (nexus/artifactory) или если у вас нет ни одного из них или вы не хотите создавать локальный maven структурированный архив и настройте "хранилище" в вашем pom: local:

<repositories>
    <repository>
        <id>my-local-repo</id>
        <url>file://C:/DEV//mymvnrepo</url>
    </repository>
</repositories>

дистанционный пульт:

<repositories>
    <repository>
        <id>my-remote-repo</id>
        <url>http://192.168.0.1/whatever/mavenserver/youwant/repo</url>
    </repository>
</repositories>

для этого также возможен относительный путь с помощью переменной basedir:

<url>file:${basedir}</url>
<dependency>
    <groupId>group id name</groupId>
    <artifactId>artifact name</artifactId>
    <version>version number</version>
    <scope>system</scope>
    <systemPath>jar location</systemPath>
</dependency>

Важная часть зависимости:${pom.basedir} (вместо просто ${basedir})

<dependency>
    <groupId>org.example</groupId>
    <artifactId>example</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>${pom.basedir}/src/lib/example.jar</systemPath>
</dependency>

Добавьте свой собственный локальный JAR-файл в POM-файл и используйте его в сборке Maven.

mvn install:install-file -Dfile=path-to-jar -DgroupId=owngroupid -DartifactId=ownartifactid -Dversion=ownversion -Dpackaging=jar

Например:

mvn install:install-file -Dfile=path-to-jar -DgroupId=com.decompiler -DartifactId=jd-core-java -Dversion=1.2 -Dpackaging=jar

Затем добавьте его в POM следующим образом:

Да, вы можете иметь, но это не очень хорошая идея.

Вместо этого установите все эти банки в репозитории Maven

Также см

Шаг 1. Настройтеmaven-install-plugin с целью install-file в вашем pom.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-install-plugin</artifactId>
    <executions>
        <execution>
            <id>install-external-non-maven-jar-MWS-Client-into-local-maven-repo</id>
            <phase>clean</phase>
            <configuration>
                <repositoryLayout>default</repositoryLayout>
                <groupId>com.amazonservices.mws</groupId>
                <artifactId>mws-client</artifactId>
                <version>1.0</version>
                <file>${project.basedir}/lib/MWSClientJavaRuntime-1.0.jar</file>
                <packaging>jar</packaging>
                <generatePom>true</generatePom>
            </configuration>
            <goals>
                <goal>install-file</goal>
            </goals>
        </execution>
    </executions>
</plugin>

Обязательно отредактируйте file путь на основе вашего фактического пути к файлу (рекомендуется поместить эти внешние банки, отличные от maven, в какую-либо папку, скажем, lib, и поместите это lib папка внутри вашего проекта, чтобы использовать относительный путь для конкретного проекта и избежать добавления абсолютного пути для конкретной системы.

Если у вас несколько внешних банок, просто повторите <execution> для других банок в том же maven-install-plugin.

Шаг 2: После настройкиmaven-install-plugin как показано выше в вашем pom.xml файл, вы должны использовать эти банки в своем pom.xml по-прежнему:

    <dependency>
        <groupId>com.amazonservices.mws</groupId>
        <artifactId>mws-client</artifactId>
        <version>1.0</version>
    </dependency>

Обратите внимание, что maven-install-plugin копирует только ваши внешние банки на ваш локальный .m2репозиторий maven. Вот и все. Он не включает эти jar-файлы автоматически в качестве зависимостей maven в ваш проект.

Это мелочь, но иногда ее легко упустить.

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

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

http://maven.apache.org/plugins/maven-install-plugin/install-file-mojo.html

Конечно, вы можете добавить банки в эту папку. Но, может быть, это не то, что вы хотите достичь...

Если вам нужны эти jar для компиляции, проверьте следующий вопрос: Могу ли я добавить jar в maven 2 buildpath classpath без их установки?

Кроме того, прежде чем кто-либо предложит это, не используйте системную область.

Еще один интересный случай, когда вы хотите иметь в своем проекте приватные баночки maven. Возможно, вы захотите сохранить возможности Maven для разрешения транзитивных зависимостей. Решение довольно простое.

  1. Создайте папку libs в вашем проекте
  2. Добавьте следующие строки в ваш файл pom.xml

    <properties><local.repository.folder>${pom.basedir}/libs/</local.repository.folder>
    </properties>
    
    <repositories>
       <repository>
            <id>local-maven-repository</id>
            <url>file://${local.repository.folder}</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
       </repository>
    </repositories>
    
  3. Откройте папку .m2/repository и скопируйте структуру каталогов проекта, который вы хотите импортировать, в папку libs.

Например, предположим, что вы хотите импортировать зависимость

<dependency>
    <groupId>com.mycompany.myproject</groupId>
    <artifactId>myproject</artifactId>
    <version>1.2.3</version>
</dependency>

Просто зайдите в .m2/repository, и вы увидите следующую папку

ком / MyCompany/ MyProject/1.2.3

Скопируйте все в свою папку libs (опять же, включая папки в .m2/repository), и все готово.

Вы можете build а также install один проект в локальный репозиторий maven (.m2 папка по умолчанию) как jarбиблиотека, необязательно с исходными кодами и javadoc. Таких библиотек может быть несколько. Затем вы можете использовать эти библиотеки во втором проекте в качестве зависимостей maven. Например:

Первый проект: библиотека

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <url>https://example.com/module1</url>

    <groupId>com.example</groupId>
    <artifactId>module1</artifactId>
    <name>module1</name>
    <version>1.0.1</version>
    <packaging>jar</packaging>

    <properties>
        <java.version>12</java.version>
    </properties>

    <build>
        <finalName>module1</finalName>
        <defaultGoal>install</defaultGoal>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <plugin>
                <inherited>true</inherited>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>3.2.1</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

Второй проект: приложение

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <url>https://example.com/module2</url>

    <groupId>com.example</groupId>
    <artifactId>module2</artifactId>
    <name>module2</name>
    <version>1.0.2</version>
    <packaging>war</packaging>
    <!--packaging>jar</packaging-->

    <properties>
        <java.version>12</java.version>
    </properties>

    <build>
        <finalName>module2</finalName>
        <defaultGoal>package</defaultGoal>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <!-- com.example -->
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>module1</artifactId>
            <version>1.0.1</version>
        </dependency>
    </dependencies>
</project>

Командная строка:

mvn install:install-file -Dfile=c:\kaptcha-{version}.jar -DgroupId=com.google.code
-DartifactId=kaptcha -Dversion={version} -Dpackaging=jar

Я думаю, что лучшим решением для этой проблемы является использование maven-install-plugin для автоматической установки файлов во время установки. Вот как я настроил его для своего проекта.

Сначала добавьте путь (где вы храните локальные файлы.jars) в качестве свойства.

<properties>
    <local.sdk>/path/to/jar</local.sdk>
</properties>

Затем под plugins добавить плагин для установки jars при компиляции.

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-install-plugin</artifactId>
    <version>2.5.2</version>
    <executions>
        <execution>
            <id>1</id>
            <phase>initialize</phase>
            <goals>
                <goal>install-file</goal>
            </goals>
            <configuration>
                <groupId>com.local.jar</groupId> 
                <artifactId>appengine-api</artifactId>
                <version>1.0</version>
                <packaging>jar</packaging>
                <file>${local.sdk}/lib/impl/appengine-api.jar</file>
            </configuration>
        </execution>
        <execution>
            <id>appengine-api-stubs</id>
            <phase>initialize</phase>
            <goals>
                <goal>install-file</goal>
            </goals>
            <configuration>
                <groupId>com.local.jar</groupId>
                <artifactId>appengine-api-stubs</artifactId>
                <version>1.0</version>
                <packaging>jar</packaging>
                <file>${local.sdk}/lib/impl/appengine-api-stubs.jar</file>
            </configuration>
        </execution>
    </executions>
</plugin>

Наконец, в зависимости, вы можете добавить банки

<dependency>
    <groupId>com.local.jar</groupId>
    <artifactId>appengine-api</artifactId>
    <version>1.0</version>
</dependency>

<dependency>
    <groupId>com.local.jar</groupId>
    <artifactId>appengine-api-stubs</artifactId>
    <version>1.0</version>
    <scope>test</scope>
</dependency>

При настройке вашего проекта таким образом, проект будет продолжать собираться, даже если вы перенесете его на другой компьютер (учитывая, что у него есть все файлы JAR по пути, указанному в свойстве local.sdk).

За groupId используйте уникальное имя, чтобы убедиться в отсутствии конфликтов.

Теперь, когда ты mvn install или же mvn test местные банки будут добавлены автоматически.

Не ответ на исходный вопрос, но может быть кому-то полезен

Нет правильного способа добавить несколько библиотек jar из папки с помощью Maven. Если зависимостей мало, возможно, проще настроитьmaven-install-plugin как упоминалось в ответах выше.

Однако для моего конкретного случая у меня был libпапка с более чем 100 проприетарными jar-файлами, которые мне пришлось как-то добавить. И мне было намного проще преобразовать своиMaven проект на Gradle.

plugins {
    id 'org.springframework.boot' version '2.2.2.RELEASE'
    id 'io.spring.dependency-management' version '1.0.8.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
    flatDir {
       dirs 'libs' // local libs folder
   }
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
    
    implementation 'io.grpc:grpc-netty-shaded:1.29.0'
    implementation 'io.grpc:grpc-protobuf:1.29.0'
    implementation 'io.grpc:grpc-stub:1.29.0' // dependecies from maven central

    implementation name: 'akka-actor_2.12-2.6.1' // dependecies from lib folder
    implementation name: 'akka-protobuf-v3_2.12-2.6.1'
    implementation name: 'akka-stream_2.12-2.6.1'

 }

Это короткий синтаксис для более новых версий:

mvn install:install-file -Dfile=<path-to-file>

Это работает, когда JAR был построен Apache Maven - самый распространенный случай. Затем он будет содержать файл pom.xml в подпапке каталога META-INF, который будет читаться по умолчанию.

Источник: http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html

Я хочу поделиться кодом, где вы можете загрузить папку, полную банок. Это полезно, когда у провайдера нет общедоступного репозитория, и вам нужно добавить множество библиотек вручную. Я решил создать.bat вместо вызова напрямую maven, потому что это может быть из-за нехватки памяти. Он был подготовлен для среды Windows, но его легко адаптировать к ОС Linux:

import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.util.jar.Attributes;
import java.util.jar.JarFile;
import java.util.jar.Manifest;

public class CreateMavenRepoApp {

    private static final String OCB_PLUGIN_FOLDER = "C://your_folder_with_jars";

    public static void main(String[] args) throws IOException {

    File directory = new File();
    //get all the files from a directory
    PrintWriter writer = new PrintWriter("update_repo_maven.bat", "UTF-8");
    writer.println("rem "+ new Date());  
    File[] fList = directory.listFiles();
    for (File file : fList){
        if (file.isFile()){               
        String absolutePath = file.getAbsolutePath() ;
        Manifest  m = new JarFile(absolutePath).getManifest();
        Attributes attributes = m.getMainAttributes();
        String symbolicName = attributes.getValue("Bundle-SymbolicName");

        if(symbolicName!=null &&symbolicName.contains("com.yourCompany.yourProject")) {
            String[] parts =symbolicName.split("\\.");
            String artifactId = parts[parts.length-1];
            String groupId = symbolicName.substring(0,symbolicName.length()-artifactId.length()-1);
            String version = attributes.getValue("Bundle-Version");
            String mavenLine= "call mvn org.apache.maven.plugins:maven-install-plugin:2.5.1:install-file -Dfile="+ absolutePath+" -DgroupId="+ groupId+" -DartifactId="+ artifactId+" -Dversion="+ version+" -Dpackaging=jar ";
            writer.println(mavenLine);          
        }

        }
    }
    writer.close();
    }

}

После запуска этого основного из любой IDE, запустите update_repo_maven.bat.

Предпочтительным способом было бы создать свой собственный удаленный репозиторий.

Смотрите здесь, чтобы узнать, как это сделать. Загляните в раздел "Загрузка в удаленный репозиторий".

Также взгляните на...

<scope>compile</scope>

Зависимости Maven. Это значение по умолчанию, но в некоторых случаях я обнаружил, что Maven явно устанавливает эту область для поиска локальных библиотек в локальном хранилище.

  1. Скачать jar-файл
  2. скопируйте файл jar в папку проекта
  3. получить интеллектуальную идею командной области Maven
  4. введите команду ниже

mvn install:install-file -Dfile=YOUR_JAR_FILE_LOCATION*JARNAME.jar -DgroupId=org.primefaces.themes -DartifactId=iMetro -Dversion=1.0.1 -Dpackaging=jar*


пример :

mvn install:install-file-Dfile=C:\Users\ranushka.l\Desktop\test\spring-web-1.0.2.jar -DgroupId=org.primefaces.themes -DartifactId=iMetro -Dversion=1.0.1 -Dpackaging=баночка

  1. Создайте локальный каталог репозитория Maven, корень вашего проекта должен сначала выглядеть примерно так:
yourproject
+- pom.xml
+- src
  1. Добавьте стандартный каталог репозитория Maven с именем repo для группы com.example и версии 1.0:
yourproject
+- pom.xml
+- src
+- repo
  1. Разверните артефакт в репозиторий, Maven может развернуть артефакт за вас, используя цель mvn deploy:deploy-file:
mvn deploy:deploy-file -Durl=file:///pathtoyour/repo -Dfile=your.jar -DgroupId=your.group.id -DartifactId=yourid -Dpackaging=jar -Dversion=1.0
  1. установите файл pom, соответствующий вашей банке, чтобы ваш проект мог найти банку во время сборки maven из локального репо:
mvn install:install-file -Dfile=/path-to-your-jar-1.0.jar -DpomFile=/path-to-your-pom-1.0.pom
  1. добавьте репо в свой файл pom:
<repositories>
    <!--other repositories if any-->
    <repository>
        <id>project.local</id>
        <name>project</name>
        <url>file:${project.basedir}/repo</url>
    </repository>
</repositories>
  1. добавьте зависимость в свой pom:
<dependency>
    <groupId>com.groupid</groupId>
    <artifactId>myid</artifactId>
    <version>1.0</version>
</dependency>

По какой-то причине в веб-приложении, которое я обслуживаю, ни решение Alireza Fattahi, ни решение JJ Roman не работали правильно. В обоих случаях компиляция идет хорошо (она видит банку), но упаковка не включает банку внутри войны.

Единственный способ, которым мне удалось заставить это работать, состоял в том, чтобы поставить /src/main/webapp/WEB-INF/lib/ а затем объединить его с решением Фаттахиса или Романа.

Чтобы установить сторонний jar, пожалуйста, наберите команду, как показано ниже

mvn install:install-file -DgroupId= -DartifactId= -Dversion= -Dpackaging=jar -Dfile=path

Обратите внимание, что это НЕ обязательно хорошая идея использовать локальное репо. Если этот проект используется совместно с другими, тогда у всех остальных будут проблемы и вопросы, когда он не будет работать, и баночка не будет доступна даже в вашей системе контроля версий!

Хотя общий репо - лучший ответ, если вы по какой-то причине не можете этого сделать, то встраивание jar лучше, чем локальное репо. Локальное репо может вызвать много проблем, особенно с течением времени.

Возможно, кому-то будет интересно:https://github.com/Limraj/maven-artifact-generator

Консольная программа для создания артефактов maven в локальном репозитории и настройки зависимостей для pom.xml на основе пути к jar-файлам. Вы можете сделать это для одного файла, но это наиболее полезно, если у вас несколько файлов jar.

jars пути: java -jar maven-artifact-generator-XXXjar -p path_to_jars -g com.test -V 1.2.3 -P jar

jar: java -jar maven-artifact-generator-XXXjar -f file_jar -g com.test -V 1.2.3 -P jar

Это создаст артефакт в локальном репозитории maven и сгенерирует зависимости для pom.xml в gen.log. ArtifactId - это имя файла jar.

Требуется установленный maven. Тестирование на widnows 7 и macOS X (unix/linux).

В вашем локальном хранилище вы можете установить свой jar, выполнив команды

 mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>

Перейдите по этой полезной ссылке, чтобы сделать то же самое с веб-сайта mkyoung. Вы также можете проверить Maven руководство для того же

  1. установить MVN

Вы можете написать код ниже в командной строке или, если вы используете eclipse, встроенную в maven, щелкните правой кнопкой мыши по проекту -> Выполнить как -> запустить настройки... -> в левой панели щелкните правой кнопкой мыши Maven Build -> новая конфигурация -> напишите код в Цели и в основной каталог:${project_loc:NameOfYourProject} -> Выполнить

mvn install:install-file
   -Dfile=<path-to-file>
   -DgroupId=<group-id>
   -DartifactId=<artifact-id>
   -Dversion=<version>
   -Dpackaging=<packaging>
   -DgeneratePom=true

Где каждый относится к:

<путь к файлу>: путь к файлу для загрузки, например -> c:\kaptcha-2.3.jar

<идентификатор группы>: группа, в которой файл должен быть зарегистрирован, например, -> com.google.code

<идентификатор артефакта>: имя артефакта для файла, например -> капча

<версия>: версия файла, например -> 2.3

<упаковка>: упаковка файла, например -> банка

2. После установки просто объявляет jar в pom.xml.

 <dependency>
      <groupId>com.google.code</groupId>
      <artifactId>kaptcha</artifactId>
      <version>2.3</version>
 </dependency>
Другие вопросы по тегам