我有两个应该导入maven项目的JAR。我按照本教程(单击here)并将这些JAR导入我的maven项目。基本上,我在终端中执行了这段代码:
mvn install:install-file -Dfile=myfile.jar -DgroupId=mygroup -DartifactId=com.mygroup.project -Dversion=1.0 -Dpackaging=jar -DlocalRepositoryPath=lib -DcreateChecksum=true
然后我将库导入我的Maven项目。
这一切都很好。但是,我导入的JAR本身应该具有很少的依赖性。据我了解,Maven自动处理内部依赖项。现在我有一个依赖项列表(包含组ID,artefact ID和版本),但我不明白我在哪里编写它们。在库的文件夹1.0中,有一个名为myjar-1.0.pom的文件。我尝试在那里编写依赖项,但它没用。
你能告诉我一种手动告诉Maven加载一些依赖项的方法吗?
我也尝试在主 pom.xml 中指定这些依赖项,但是会导致错误 - 说找不到 repo-url / dependency / file.pom 。所以我想它只需要在内部依赖中提及 - 但我无法想出一种手动定义它们的方法。我是否需要在这些库中创建一个pom.xml,或者是否有一些我错过的东西?
答案 0 :(得分:0)
你可以这样做:
link:http://maven.apache.org/plugins/maven-install-plugin/examples/custom-pom-installation.html
答案 1 :(得分:0)
假设您有以下JAR和依赖项:
myMavenProject
--> library1.jar
--> library2.jar
--> library3.jar
(我假设您的library1
,library2
和library3
不是Maven项目)
对于每个library1
,library2
和library3
,执行mvn install:install-file
,就像之前所做的那样:
mvn install:install-file -Dfile=library1.jar -DgroupId=com.mygroup.project -DartifactId=library1 -Dversion=1.0 -Dpackaging=jar
(请注意,我在这里交换了您的groupId
和artifactId
)
然后在您的Maven项目中,更新您的pom.xml
以获得以下内容:
<dependency>
<groupId>com.mygroup.project</groupId>
<artifactId>library1</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.mygroup.project</groupId>
<artifactId>library2</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.mygroup.project</groupId>
<artifactId>library3</artifactId>
<version>1.0</version>
</dependency>
除非您有非常具体的要求,否则我不确定您为什么要为Maven提供-DlocalRepositoryPath=lib
额外选项而不使用本地M2存储库。
答案 2 :(得分:0)
您所关注的教程可能正在运行,但它不是The Maven Way!如果您将遵循这条道路,那么您将一直遇到麻烦!
您最好阅读maven user center或maven books and resources页面中的一些教程。 Maven:定义指南例如可以在线免费获取。
为什么你目前关注的方法并不好,斯蒂芬·康诺利(Stephen Connolly)在他very good blog post上提到了你如何做得更好(斯蒂芬是一位积极的专家开发人员)。