我为我的课做了一个简单的Maven项目。根据教师教程,由于一些服务器问题,我们无法将其上传到我们的学校仓库,因此我们必须使用altDeploymentRepository
在本地存储它。我有以下pom.xml
:
<?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>
<groupId>com.dpp</groupId>
<artifactId>simple_lib</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>1.6</maven.compiler.source>
<maven.compiler.target>1.6</maven.compiler.target>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<altDeploymentRepository>internal.repo::default::file://${project.basedir}/../${project.name}-mvn-repo</altDeploymentRepository>
</configuration>
</plugin>
</plugins>
</build>
</project>
所以在我的Maven项目目录中,我有两个目录:
sample_lib
sample_lib-mvn-repo
在第二个,内心深处:sample_lib-mvn-repo\com\dpp\sample_lib\1.0-SNAPSHOT
我有一个.jar文件,我想导入(但不使用.jar文件,如传递路径到它 - 我需要这样做“Maven方式“,将其导入Maven lib)。如果文件没有存储在任何远程存储库上,而是存储在我的硬盘上,我可以这样做吗?
答案 0 :(得分:1)
是的,您可以添加maven存储库并将其指向本地目录:
<repository>
<id>local</id>
<name>local</name>
<url>file:${user.dir}/sample_lib-mvn-repo</url>
</repository>
https://maven.apache.org/guides/introduction/introduction-to-repositories.html
鉴于您的jar文件位于sample_lib-mvn-repo \ com \ dpp \ sample_lib \ 1.0-SNAPSHOT.jar,您可以将其添加为依赖项:
<dependency>
<groupId>com.dpp</groupId>
<artifactId>sample_lib</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
答案 1 :(得分:1)
简单地运行mvn install
会将文件安装在本地存储库中。默认情况下,本地存储库位于.m2\repository
下的主目录中。
使用上面的pom,在运行mvn install
之后,您将在.m2\repository\com\dpp\sample_lib\1.0-SNAPSHOT
中拥有jar(以及其他一些文件)。
要在其他项目中随后导入,您可以在该项目中创建一个依赖关系:
<dependency>
<groupId>com.dpp</groupId>
<artifactId>simple_lib</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
这一切只在您的机器上进行,不会使用任何远程存储库。
答案 2 :(得分:1)
现在您有一个存储库的本地模拟。
您可以使用https://maven.apache.org/pom.html#Repositories中所述的存储库标记导入它。要指定文件,请将其设置为文件URL,如文件:
答案 3 :(得分:0)
这不完全是你要问的。但是,快速而肮脏的解决方案是制作POM项目(无源代码)。
在POM项目中,你有主项目和外部项目。
您可以简单地依赖其他项目。