Làm cách nào để thêm tệp jar cục bộ (chưa phải là một phần của kho lưu trữ Maven) trực tiếp trong nguồn thư viện của dự án?
install-file
lệnh cmd cồng kềnh .
Làm cách nào để thêm tệp jar cục bộ (chưa phải là một phần của kho lưu trữ Maven) trực tiếp trong nguồn thư viện của dự án?
install-file
lệnh cmd cồng kềnh .
Câu trả lời:
Cài đặt JAR vào kho lưu trữ Maven cục bộ của bạn như sau:
mvn install:install-file \
-Dfile=<path-to-file> \
-DgroupId=<group-id> \
-DartifactId=<artifact-id> \
-Dversion=<version> \
-Dpackaging=<packaging> \
-DgeneratePom=true
Trường hợp mỗi đề cập đến:
<path-to-file>
: đường dẫn đến tệp để tải, ví dụ → c:\kaptcha-2.3.jar
<group-id>
: nhóm mà tệp phải được đăng ký theo vd com.google.code
<artifact-id>
: tên tạo tác cho tệp, ví dụ → kaptcha
<version>
: phiên bản của tệp, ví dụ → 2.3
<packaging>
: bao bì của tệp, ví dụ → jar
Tài liệu tham khảo
install:install-file
mục tiêuBạn có thể thêm phụ thuộc cục bộ trực tiếp (như được đề cập trong dự án xây dựng maven với các thư viện sở hữu được bao gồm ) như thế này:
<dependency>
<groupId>com.sample</groupId>
<artifactId>sample</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/Name_Your_JAR.jar</systemPath>
</dependency>
Cập nhật
Trong các bản phát hành mới, tính năng này được đánh dấu là không dùng nữa nhưng vẫn hoạt động và chưa bị xóa (Bạn chỉ thấy cảnh báo trong nhật ký trong khi bắt đầu maven). Một vấn đề được nêu ra tại nhóm maven về điều này https://issues.apache.org/jira/browse/MNG-6523 (Bạn có thể tham gia và mô tả lý do tại sao tính năng này hữu ích trong một số trường hợp). Tôi hy vọng tính năng này vẫn còn đó!
Nếu bạn đang hỏi tôi, miễn là tính năng này không bị xóa, tôi sử dụng điều này để tạo sự phụ thuộc vào chỉ một tệp jar nghịch ngợm trong dự án của tôi không phù hợp với kho lưu trữ. Nếu tính năng này bị xóa, tốt, có rất nhiều câu trả lời hay ở đây mà tôi có thể chọn sau này!
artifactId
và groupId
cách sai?
Đầu tiên, tôi muốn cung cấp tín dụng cho câu trả lời này cho một người dùng Stack Overflow ẩn danh - tôi khá chắc chắn rằng tôi đã thấy một câu trả lời tương tự ở đây trước đây - nhưng bây giờ tôi không thể tìm thấy nó.
Tùy chọn tốt nhất để có các tệp JAR cục bộ làm phụ thuộc là tạo kho lưu trữ Maven cục bộ. Một kho lưu trữ như vậy không có gì khác hơn là một cấu trúc thư mục phù hợp với các tệp pom trong đó.
Ví dụ của tôi: Tôi có dự án chính của tôi về ${master_project}
vị trí và tiểu dự án1 được bật ${master_project}/${subproject1}
.
Sau đó, tôi tạo một kho lưu trữ Maven trong :
${master_project}/local-maven-repo
.
Trong tệp pom trong tiểu dự án1 được đặt tại ${master_project}/${subproject1}/pom.xml
, kho lưu trữ cần được chỉ định sẽ lấy đường dẫn tệp làm tham số URL:
<repositories>
<repository>
<id>local-maven-repo</id>
<url>file:///${project.parent.basedir}/local-maven-repo</url>
</repository>
</repositories>
Sự phụ thuộc có thể được chỉ định như đối với bất kỳ kho lưu trữ khác. Điều này làm cho kho lưu trữ pom của bạn độc lập. Chẳng hạn, một khi JAR mong muốn có sẵn ở trung tâm Maven, bạn chỉ cần xóa nó khỏi repo cục bộ của bạn và nó sẽ được kéo từ repo mặc định.
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.servicebinder</artifactId>
<version>0.9.0-SNAPSHOT</version>
</dependency>
Điều cuối cùng nhưng không kém phần quan trọng là thêm tệp JAR vào kho lưu trữ cục bộ bằng cách sử dụng chuyển đổi -DlocalRep repositoryPath như vậy:
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
Khi tệp JAR được cài đặt, repo Maven của bạn có thể được cam kết với kho lưu trữ mã và toàn bộ thiết lập là độc lập với hệ thống. ( Ví dụ làm việc trong GitHub ).
Tôi đồng ý rằng việc các JAR cam kết repo mã nguồn không phải là một cách làm tốt, nhưng trong thực tế, các giải pháp nhanh và bẩn đôi khi tốt hơn so với một repo Nexus đầy đủ để lưu trữ một JAR mà bạn không thể xuất bản.
${project.parent.basedir}
dường như không giải quyết được bất cứ điều gì hiện nay tôi đã sử dụng ${project.basedir}/..
và làm việc hoàn hảo.
<mirrorOf>*</mirrorOf>
.
Tạo một thư mục mới, giả sử local-maven-repo
tại thư mục gốc của dự án Maven của bạn.
Chỉ cần thêm một repo cục bộ bên trong <project>
của bạn pom.xml
:
<repositories>
<repository>
<id>local-maven-repo</id>
<url>file:///${project.basedir}/local-maven-repo</url>
</repository>
</repositories>
Sau đó, đối với mỗi jar bên ngoài bạn muốn cài đặt, hãy truy cập vào thư mục gốc của dự án và thực hiện:
mvn deploy:deploy-file -DgroupId=[GROUP] -DartifactId=[ARTIFACT] -Dversion=[VERS] -Durl=file:./local-maven-repo/ -DrepositoryId=local-maven-repo -DupdateReleaseInfo=true -Dfile=[FILE_PATH]
local-maven-repo
được bao gồm (như một đứa trẻ trong ví dụ này) trong thư mục nguồn của bạn
Tôi muốn giải pháp như vậy - sử dụng maven-install-plugin
trong tệp 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>
Trong trường hợp này, bạn có thể thực hiện mvn initialize
và jar sẽ được cài đặt trong repo maven cục bộ. Bây giờ bình này có sẵn trong bất kỳ bước maven nào trên máy này (đừng quên bao gồm phụ thuộc này như bất kỳ phụ thuộc maven nào khác trong pom với <dependency></dependency>
thẻ). Cũng có thể liên kết cài đặt jar không theo initialize
từng bước, nhưng bất kỳ bước nào khác bạn muốn.
mvn initialize
trước mvn package
: tôi không thể mvn initialize package
tải xuống JAR từ repo trung tâm. Tại sao lại thế này? Tôi nghĩ rằng nó sẽ chạy các mục tiêu / giai đoạn này theo thứ tự.
compile
), bản dựng sẽ thất bại.
<dependency>
<groupId>group id name</groupId>
<artifactId>artifact name</artifactId>
<version>version number</version>
<scope>system</scope>
<systemPath>jar location</systemPath>
</dependency>
<scope>system
bây giờ không được dùng nữa
install:install-file
, tạo tác cho repo cục bộ và sử dụng nó như một phụ thuộc "bình thường" (với phạm vi mặc định compile
) hoặc sử dụng giải pháp kho lưu trữ trong dự án .
Vâng, bạn có thể có nhưng ý tưởng không tốt.
Thay vào đó cài đặt tất cả các lọ để maven repos
Cũng thấy
Cách thực sự nhanh chóng và bẩn thỉu là trỏ đến một tệp cục bộ:
<dependency>
<groupId>sample</groupId>
<artifactId>com.sample</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>C:\DEV\myfunnylib\yourJar.jar</systemPath>
</dependency>
Tuy nhiên, điều này sẽ chỉ tồn tại trên máy của bạn (rõ ràng), vì chia sẻ thường nên sử dụng một kho lưu trữ m2 thích hợp (nexus / artifactory) hoặc nếu bạn không có bất kỳ thứ nào trong số này hoặc không muốn thiết lập một maven cục bộ lưu trữ có cấu trúc và cấu hình một "kho lưu trữ" trong pom của bạn: local:
<repositories>
<repository>
<id>my-local-repo</id>
<url>file://C:/DEV//mymvnrepo</url>
</repository>
</repositories>
Xa xôi:
<repositories>
<repository>
<id>my-remote-repo</id>
<url>http://192.168.0.1/whatever/mavenserver/youwant/repo</url>
</repository>
</repositories>
đối với điều này, một đường dẫn tương đối cũng có thể sử dụng biến dựa trên:
<url>file:${basedir}</url>
<url>file:${basedir}</url>
làm url cơ sở thay thế.
Thêm JAR cục bộ của riêng bạn trong tệp POM và sử dụng nó trong maven build.
mvn install:install-file -Dfile=path-to-jar -DgroupId=owngroupid -DartifactId=ownartifactid -Dversion=ownversion -Dpackaging=jar
Ví dụ:
mvn install:install-file -Dfile=path-to-jar -DgroupId=com.decompiler -DartifactId=jd-core-java -Dversion=1.2 -Dpackaging=jar
Sau đó thêm nó vào POM như thế này:
Một cách là tải nó lên trình quản lý kho lưu trữ Maven của riêng bạn (chẳng hạn như Nexus). Đó là một thực hành tốt để có một người quản lý kho lưu trữ riêng.
Một cách hay khác mà tôi đã thấy gần đây là đưa Plugin cài đặt Maven vào vòng đời xây dựng của bạn: Bạn khai báo trong POM để cài đặt các tệp vào kho lưu trữ cục bộ. Đó là một ít nhưng nhỏ trên đầu và không có bước thủ công liên quan.
http://maven.apache.org/plugins/maven-install-plugin/install-file-mojo.html
Tất nhiên bạn có thể thêm lọ vào thư mục đó. Nhưng có lẽ đó không phải là điều bạn muốn đạt được ...
Nếu bạn cần các tệp này để biên dịch, hãy kiểm tra câu hỏi liên quan này: Tôi có thể thêm các tệp vào maven 2 build classpath mà không cần cài đặt chúng không?
Ngoài ra, trước khi bất cứ ai đề xuất nó, KHÔNG sử dụng phạm vi hệ thống.
Một trường hợp thú vị khác là khi bạn muốn có trong các lọ maven riêng của dự án. Bạn có thể muốn giữ các khả năng của Maven để giải quyết các phụ thuộc bắc cầu. Giải pháp khá dễ dàng.
Thêm các dòng sau vào tệp pom.xml của bạn
<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>
Mở thư mục .m2 / repository và sao chép cấu trúc thư mục của dự án bạn muốn nhập vào thư mục libs .
Ví dụ: giả sử bạn muốn nhập phụ thuộc
<dependency>
<groupId>com.mycompany.myproject</groupId>
<artifactId>myproject</artifactId>
<version>1.2.3</version>
</dependency>
Cứ đi tiếp .m2 / repository và bạn sẽ thấy thư mục sau
com / mycompany / myproject / 1.2.3
Sao chép mọi thứ trong thư mục libs của bạn (một lần nữa, bao gồm các thư mục trong .m2 / repository ) và bạn đã hoàn tất.
Tôi nghĩ rằng một giải pháp tốt hơn cho vấn đề này là sử dụng maven-install-plugin để tự động cài đặt các tệp khi cài đặt. Đây là cách tôi thiết lập nó cho dự án của tôi.
Đầu tiên, thêm đường dẫn (nơi bạn lưu trữ .jars cục bộ) làm tài sản.
<properties>
<local.sdk>/path/to/jar</local.sdk>
</properties>
Sau đó, bên dưới plugins
thêm một plugin để cài đặt các lọ khi biên dịch.
<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>
Cuối cùng, trong phần phụ thuộc, bạn có thể thêm các lọ
<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>
Bằng cách thiết lập dự án của bạn như thế này, dự án sẽ tiếp tục xây dựng ngay cả khi bạn đưa nó đến một máy tính khác (với điều kiện là nó có tất cả các tệp jar trong đường dẫn được chỉ định bởi thuộc tính local.sdk
).
Dành cho groupId
sử dụng một tên duy nhất chỉ để đảm bảo rằng không có xung đột.
Bây giờ khi bạn mvn install
hoặc mvn test
lọ địa phương sẽ được thêm tự động.
Tôi muốn chia sẻ một mã nơi bạn có thể tải lên một thư mục chứa đầy các lọ. Nó hữu ích khi nhà cung cấp không có kho lưu trữ công cộng và bạn cần thêm nhiều thư viện theo cách thủ công. Tôi đã quyết định xây dựng một .bat thay vì gọi trực tiếp đến maven vì nó có thể bị lỗi Bộ nhớ. Nó đã được chuẩn bị cho môi trường windows nhưng rất dễ thích ứng với hệ điều hành 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();
}
}
Sau khi chạy main này từ bất kỳ IDE nào, hãy chạy update_Vpo_maven.bat.
String symbolicName = attributes.getValue("Bundle-SymbolicName"); if(symbolicName!=null &&symbolicName.contains("com.yourCompany.yourProject"))
dường như chỉ ra rằng chỉ các lọ tùy chỉnh sẽ được hỗ trợ. Đó không phải là những gì chúng ta cần: thay vào đó là một loạt các lọ của bên thứ ba. Bạn có gợi ý làm thế nào để cài đặt bất kỳ jar theo cách này?
Đây là một cú pháp ngắn cho các phiên bản mới hơn:
mvn install:install-file -Dfile=<path-to-file>
Nó hoạt động khi JAR được xây dựng bởi Apache Maven - trường hợp phổ biến nhất. Sau đó, nó sẽ chứa một tệp pom.xml trong thư mục con của thư mục META-INF, sẽ được đọc theo mặc định.
Nguồn: http://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html
Ngoài ra hãy xem ...
<scope>compile</scope>
Phụ thuộc Maven . Đây là mặc định nhưng tôi đã tìm thấy trong một số trường hợp cài đặt rõ ràng phạm vi đó cũng là Maven để tìm các thư viện cục bộ trong kho lưu trữ cục bộ.
Vì một số lý do, trong ứng dụng web tôi đang bảo trì, cả giải pháp của Alireza Fattahi lẫn giải pháp của JJ Roman hoạt động chính xác. Trong cả hai trường hợp, quá trình biên dịch đều ổn (nó nhìn thấy bình), nhưng bao bì không bao gồm bình trong cuộc chiến.
Cách duy nhất tôi quản lý để làm cho nó hoạt động là bằng cách đặt bình lên /src/main/webapp/WEB-INF/lib/
và sau đó kết hợp nó với giải pháp của Fattahis hoặc Roman.
Lưu ý rằng KHÔNG nhất thiết phải sử dụng repo cục bộ. Nếu dự án này được chia sẻ với những người khác thì mọi người khác sẽ gặp vấn đề và câu hỏi khi nó không hoạt động và jar sẽ không khả dụng ngay cả trong hệ thống kiểm soát nguồn của bạn!
Mặc dù repo được chia sẻ là câu trả lời tốt nhất, nhưng nếu bạn không thể làm điều này vì một số lý do thì nhúng bình sẽ tốt hơn so với repo cục bộ. Nội dung repo chỉ cục bộ có thể gây ra nhiều vấn đề, đặc biệt là theo thời gian.
Trên kho lưu trữ cục bộ của bạn, bạn có thể cài đặt jar của mình bằng cách ban hành các lệnh
mvn install:install-file -Dfile=<path-to-file> -DgroupId=<group-id> \
-DartifactId=<artifact-id> -Dversion=<version> -Dpackaging=<packaging>
Theo liên kết hữu ích này để làm tương tự từ trang web của mkyoung. Bạn cũng có thể kiểm tra hướng dẫn maven cho cùng
Để cài đặt jar của bên thứ ba, vui lòng gọi lệnh như bên dưới
mvn install:install-file -DgroupId= -DartifactId= -Dversion= -Dpackaging=jar -Dfile=path
- cài đặt mvn
Bạn có thể viết mã bên dưới trong dòng lệnh hoặc nếu bạn đang sử dụng nhật thực dựng sẵn, nhấp chuột phải vào dự án -> Chạy dưới dạng -> chạy cấu hình ... -> trong bảng điều khiển bên trái nhấp chuột phải vào Maven Build -> cấu hình mới -> viết mã trong Mục tiêu & trong thư mục cơ sở: $ {project_loc: NameOfYourProject} -> Run
mvn install:install-file
-Dfile=<path-to-file>
-DgroupId=<group-id>
-DartifactId=<artifact-id>
-Dversion=<version>
-Dpackaging=<packaging>
-DgeneratePom=true
Trường hợp mỗi đề cập đến:
<path-to-file>: đường dẫn đến tệp cần tải, ví dụ:> c: \ kaptcha-2.3.jar
<group-id>: nhóm mà tệp phải được đăng ký trong ví dụ:> com.google.code
<artifact-id>: tên tạo tác cho tệp, vd -> kaptcha
<phiên bản>: phiên bản của tệp, ví dụ:> 2.3
<bao bì>: bao bì của tệp, ví dụ:> jar
2.Sau khi cài đặt, chỉ cần khai báo jar trong pom.xml.
<dependency>
<groupId>com.google.code</groupId>
<artifactId>kaptcha</artifactId>
<version>2.3</version>
</dependency>
Bước 1: Định cấu hình maven-install-plugin
với mục tiêu install-file
trong của bạnpom.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>
Đảm bảo chỉnh sửa file
đường dẫn dựa trên đường dẫn tệp thực tế của bạn (khuyến nghị là đặt các lọ không phải là maven bên ngoài này vào một số thư mục, giả sử lib
và đặt cái nàylib
thư mục trong dự án của bạn để sử dụng đường dẫn tương đối dành riêng cho dự án và tránh thêm hệ thống đường dẫn tuyệt đối cụ thể.
Nếu bạn có nhiều lọ bên ngoài, chỉ cần lặp lại <execution>
cho các lọ khác trong cùng maven-install-plugin
.
Bước 2: Khi bạn đã định cấu hình maven-install-plugin
như được hiển thị ở trên trong pom.xml
tệp của mình , bạn phải sử dụng các lọ này trong pom.xml
bình thường:
<dependency>
<groupId>com.amazonservices.mws</groupId>
<artifactId>mws-client</artifactId>
<version>1.0</version>
</dependency>
Lưu ý rằng maven-install-plugin
chỉ sao chép các lọ bên ngoài của bạn vào địa phương của bạn.m2
kho lưu trữ maven . Đó là nó. Nó không tự động bao gồm các lọ này như phụ thuộc maven cho dự án của bạn.
Đó là một điểm nhỏ, nhưng đôi khi dễ bỏ lỡ.
Tôi đã có cùng một lỗi cho một tập hợp các phụ thuộc trong pom.xml của tôi, hóa ra các phiên bản của các phụ thuộc không được chỉ định trong pom.xml và đã được đề cập trong kho lưu trữ mẹ. Vì một số lý do, các chi tiết phiên bản không được đồng bộ hóa với repo này. Do đó tôi đã nhập thủ công các phiên bản bằng cách sử dụng thẻ và nó hoạt động như một lá bùa. Một chút thời gian cần thiết để tra cứu các phiên bản trong phần gốc và chỉ định ở đây. Nhưng điều này có thể được thực hiện chỉ đối với các lọ đang hiển thị lỗi artifactid và nó hoạt động. Hy vọng điều này sẽ giúp được ai đó.
Trong Apache Maven 3.5.4, tôi đã phải thêm trích dẫn kép. Không có trích dẫn kép, nó đã không làm việc cho tôi.
ví dụ: mvn install: install-file "-Dfile = location vào tệp jar" "-DgroupId = nhóm id" "-DartifactId = artifact id" "-Dversion = version" "-Dpackaging = kiểu gói"
yourproject
+- pom.xml
+- src
yourproject
+- pom.xml
+- src
+- repo
mvn deploy:deploy-file -Durl=file:///pathtoyour/repo -Dfile=your.jar -DgroupId=your.group.id -DartifactId=yourid -Dpackaging=jar -Dversion=1.0
mvn install:install-file -Dfile=/path-to-your-jar-1.0.jar -DpomFile=/path-to-your-pom-1.0.pom
<repositories>
<!--other repositories if any-->
<repository>
<id>project.local</id>
<name>project</name>
<url>file:${project.basedir}/repo</url>
</repository>
</repositories>
<dependency>
<groupId>com.groupid</groupId>
<artifactId>myid</artifactId>
<version>1.0</version>
</dependency>
TRẢ LỜI NÀY CHỈ DÀNH CHO NGƯỜI SỬ DỤNG ECLIPSE:
Nếu bạn đang sử dụng Eclipse, hãy đặt jar trong lib /, nhấp chuột phải vào tên jar và nhấp vào "thêm để xây dựng đường dẫn". Eclipse sẽ tạo ra một "thư viện tham chiếu" và đặt jar cho bạn
Nó giải quyết việc nhập bình ngay lập tức trong chương trình cho tôi
.classpath
, nhưng bản dựng maven của bạn mvn package
sẽ được giới thiệu một khi bạn bắt đầu sử dụng sự phụ thuộc đó, vì maven không có định nghĩa về nó, và nó chỉ nên có trongpom.xml