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