Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven和m2e-使用依赖项信息构建jar_Java_Maven_Jar - Fatal编程技术网

Java Maven和m2e-使用依赖项信息构建jar

Java Maven和m2e-使用依赖项信息构建jar,java,maven,jar,Java,Maven,Jar,我们正在使用Maven和m2e工具进行开发,今天我们遇到了一个问题 我们的一个项目是其他项目所需的小型库,所以我们将其打包到jar文件中,并放入我们的私有Maven存储库中 目前,我们放在这个存储库中的所有JAR都没有任何外部依赖项,但我提到的这个库使用了一些外部JAR 现在,当我向其他POM添加关于这个jar的信息时,这个jar是从我们的私有存储库下载的,但是Maven不下载这个jar所需的依赖项 我想知道是否需要使用一些特殊的target/向pom.xml文件中添加一些东西,以通知Maven

我们正在使用Maven和m2e工具进行开发,今天我们遇到了一个问题

我们的一个项目是其他项目所需的小型库,所以我们将其打包到jar文件中,并放入我们的私有Maven存储库中

目前,我们放在这个存储库中的所有JAR都没有任何外部依赖项,但我提到的这个库使用了一些外部JAR

现在,当我向其他POM添加关于这个jar的信息时,这个jar是从我们的私有存储库下载的,但是Maven不下载这个jar所需的依赖项

我想知道是否需要使用一些特殊的target/向pom.xml文件中添加一些东西,以通知Maven包含有关此工件所需依赖项的信息

编辑: 以下是我将jar上载到我们的私有存储库时执行的工作流:

1.我使用m2e从Eclipse生成jar文件

2.mvn安装:安装文件-DgroupId=-DartifactId=-Dversion=-Dfile=-Dpackaging=jar-DgeneratePom=true-DcreateChecksum=true


3.我将本地存储库中创建的文件夹复制到远程存储库

我看到您在安装jar文件时使用了-DgeneratePom=true。您需要做的是为您的工件创建一个pom.xml。在pom.xml中,可以指定jar文件所需的依赖项。在执行install:install plugin目标时,您使用-DpomFile=pom.xml。

我看到您在安装jar文件时使用了-DgeneratePom=true。您需要做的是为您的工件创建一个pom.xml。在pom.xml中,可以指定jar文件所需的依赖项。在执行install:install plugin目标时,您可以使用-DpomFile=pom.xml来代替。

如果您的小型库如您所述是一个maven项目,那么应该没有理由让eclipse构建jar,然后使用maven来安装它,然后手动复制到远程repo。相反,您应该使用m2e来运行部署目标:

mvn deploy
这将导致构建jar,然后将其直接安装到本地maven repo中,然后将其部署到远程repo


在eclipse中,这可以通过右键单击您的项目,选择RunAs->Maven Build。。。然后在目标输入类型deploy的运行配置窗口中,单击运行。完成一次后,您可以使用runas->Maven Build再次运行相同的配置

如果您的小型库如您所述是一个maven项目,那么就没有理由让eclipse构建jar,然后使用maven进行安装,然后手动复制到远程repo。相反,您应该使用m2e来运行部署目标:

mvn deploy
这将导致构建jar,然后将其直接安装到本地maven repo中,然后将其部署到远程repo


在eclipse中,这可以通过右键单击您的项目,选择RunAs->Maven Build。。。然后在目标输入类型deploy的运行配置窗口中,单击运行。完成一次后,您可以使用runas->Maven Build再次运行相同的配置

最好的方法是运行mvn部署

您必须在settings.xml中将分发存储库设置为您的私有artifact manager nexus或artifactory


有关更多详细信息,请参见

执行此操作的最佳方法是运行mvn部署

您必须在settings.xml中将分发存储库设置为您的私有artifact manager nexus或artifactory


有关更多详细信息,请参见

其他项目是否也使用maven?正确的方法是使用经典的mvn部署构建库,而不是手动安装jar。生成的pom see-DgeneratePom=true将是最小值,不包含依赖项信息。其他项目是否也使用maven?正确的方法是使用经典的mvn部署构建库,而不是手动安装jar。生成的pom see-DgeneratePom=true将是最小值,并且不包含依赖项信息。为什么不运行mvn deploy呢?他提到图书馆本身就是一个maven项目…@Lucas,说得好。我没有注意到库本身也是一个maven项目。我看到install:install插件是手动使用的,并且假设jar文件是由一个非maven项目提供的?他提到图书馆本身就是一个maven项目…@Lucas,说得好。我没有注意到库本身也是一个maven项目。我看到install:install插件是手动使用的,并假设它的jar文件是由一个非maven项目提供的。在将我的目标更改为部署到远程存储库后,我的依赖项会按其应该的方式下载,但m2e中存在一个小问题。当我在Eclipse中扩展Maven依赖项时,我可以看到一些JAR,包括那些应该作为我的库的依赖项添加的JAR,但库本身显示为目录,您知道这是什么原因吗?@Andna,Dependencies sh
如果您依赖于同一eclipse工作区中版本为当前版本的项目,则将ow作为文件夹。例如,如果您在1.1.0-SNAPSHOT版本的工作区中有DependencyA,并且同一工作区中的project a依赖于1.1.0-SNAPSHOT版本,则会显示一个文件夹,但如果您依赖DependencyA的1.0.0版本,则会显示为jar。谢谢,可以说,我不知道这个特性。在将我的目标更改为部署到远程存储库后,我的依赖项会按应有的方式下载,但m2e中存在一个小问题。当我在Eclipse中扩展Maven依赖项时,我可以看到一些JAR,包括那些应该作为我的库的依赖项添加的JAR,但库本身显示为目录,您知道这是什么原因吗?@Andna,如果依赖于同一eclipse工作区中版本为当前版本的项目,则依赖项将显示为文件夹。例如,如果您在1.1.0-SNAPSHOT版本的工作区中有DependencyA,并且同一工作区中的project a依赖于1.1.0-SNAPSHOT版本,则会显示一个文件夹,但如果您依赖DependencyA的1.0.0版本,则会显示为一个jar。谢谢,我并不知道这个特性。