Java 使用pom.xml将JAR从本地磁盘空间下载到.m2存储库

Java 使用pom.xml将JAR从本地磁盘空间下载到.m2存储库,java,maven,maven-3,maven-plugin,Java,Maven,Maven 3,Maven Plugin,我正致力于将简单java项目(相当古老)迁移到基于Maven的项目中,在当前的项目中,所有需要的JAR都保存在lib文件夹中 对于lib文件夹中的每个jar,我在maven central repository中搜索各自的依赖项,并将该依赖项添加到pom.xml 但我在central maven repository中找不到某些JAR,团队中也没有我可以帮助识别位置的来源(如果是第三方) 一种方法是,我可以将这些JAR上传到Nexus之类的存储库中,在pom.xml中,我可以在repositor

我正致力于将简单java项目(相当古老)迁移到基于Maven的项目中,在当前的项目中,所有需要的JAR都保存在
lib
文件夹中

对于
lib
文件夹中的每个jar,我在maven central repository中搜索各自的依赖项,并将该依赖项添加到
pom.xml

但我在central maven repository中找不到某些JAR,团队中也没有我可以帮助识别位置的来源(如果是第三方)

一种方法是,我可以将这些JAR上传到Nexus之类的存储库中,在pom.xml中,我可以在
repository
标记下提到它的url,因此在点击
mvn install
后,这些JAR将被添加到
.m2

但目前,我也没有任何位置可以上传这些罐子。所以我会把它们放在我机器上的一个文件夹里


只是想知道在maven中是否有任何方法(在
pom.xml
中提到的东西)可以指向该文件夹(万一jar在central maven repo中不可用),并将其下载到
.m2

,如果您没有maven存储库可供使用,我能想到的第一个选择是在您的区域设置maven repo中安装带有maven的第三方JAR,您可以通过两种方式完成:

1) 命令行: mvn安装:安装文件-Dfile=-DgroupId=-DartifactId=-Dversion=-Dpackaging= 这是官方的小牛

2) 使用maven安装插件(例如,对于一个项目,我正在分发一个包含JAR的项目,以将其作为环境设置分发给团队中的所有开发人员):


org.apache.maven.plugins
maven安装插件
2.5.1
某些组id
某个工件id
某些版本
罐子
jar的路径
符合事实的
安装jar库
安装文件
验证
编辑: 我已经阅读了另一个答案,其中建议在依赖中使用systemPath

当然这是一个选项,但在最初的主题中被问到: “我只是想知道maven中是否有任何方法(在pom.xml中提及)指向该文件夹(以防central maven repo中没有jar)并将其下载到.m2”

使用systemPath并不能满足ans要求jar在同一路径的所有系统中始终可用的要求。我用过几次,它主要在你不需要与其他团队成员分享的项目上运行良好。 我不建议,假设团队使用不同的操作系统(windows和linux),您应该配置不同的配置文件(通过操作系统激活它们),或者在所有系统上以相同的方式定义一些路径)。 除系统范围外,当包括战争或战争中的依赖性时,beahviour与“提供”相同。 根据我的经验,在本地repo中安装带有配置步骤的jar的缺点较少

希望我能帮上忙


再见

如果您没有maven存储库可供使用,我可以考虑的第一个选项是在您的区域设置maven repo中安装带有maven的第三方JAR,您可以通过两种方式完成:

1) 命令行: mvn安装:安装文件-Dfile=-DgroupId=-DartifactId=-Dversion=-Dpackaging= 这是官方的小牛

2) 使用maven安装插件(例如,对于一个项目,我正在分发一个包含JAR的项目,以将其作为环境设置分发给团队中的所有开发人员):


org.apache.maven.plugins
maven安装插件
2.5.1
某些组id
某个工件id
某些版本
罐子
jar的路径
符合事实的
安装jar库
安装文件
验证
编辑: 我已经阅读了另一个答案,其中建议在依赖中使用systemPath

当然这是一个选项,但在最初的主题中被问到: “我只是想知道maven中是否有任何方法(在pom.xml中提及)指向该文件夹(以防central maven repo中没有jar)并将其下载到.m2”

使用systemPath并不能满足ans要求jar在同一路径的所有系统中始终可用的要求。我用过几次,它主要在你不需要与其他团队成员分享的项目上运行良好。 我不建议,假设团队使用不同的操作系统(windows和linux),您应该配置不同的配置文件(通过操作系统激活它们),或者在所有系统上以相同的方式定义一些路径)。 除系统范围外,当包括战争或战争中的依赖性时,beahviour与“提供”相同。 根据我的经验,在本地repo中安装带有配置步骤的jar的缺点较少

希望我能帮上忙


请参见

使用下面的依赖项将本地机器中可用的jar包含到maven中

<dependency>    
  <groupId>groupid</groupId>    
  <artifactId>artifactid</artifactId>   
  <version>1.0</version>    
  <scope>system</scope> 
  <systemPath>${basedir}\lib\JAR_NAME.jar</systemPath>  
</dependency>

groupid
人工的
1
系统
${basedir}\lib\JAR\u NAME.JAR

使用下面的依赖项将本地机器中可用的jar包含到maven中

<dependency>    
  <groupId>groupid</groupId>    
  <artifactId>artifactid</artifactId>   
  <version>1.0</version>    
  <scope>system</scope> 
  <systemPath>${basedir}\lib\JAR_NAME.jar</systemPath>  
</dependency>

groupid
人工的
1
系统
${basedir}\lib\JAR\u NAME.JAR

如果要将jar存储到本地存储库中,请使用下面的命令

您可以通过使用eclipse和命令行来完成

eclips:安装:安装文件-Dfile=LOCAL JAR PATH-DgroupId=com.xxx.xx-DartifactId=JAR NAME-dpackage=JAR
         <dependency>
              <groupId>com.xxx.xx</groupId>
               <artifactId>JAR NAME</artifactId>
              <version>JAR-VERSION</version>
         </dependency>