我有一组广告,yanfs.jar
,yanfs-javadoc.jar
和yanfs-sources.jar
。这些是Maven无法解决的第三方罐子。
我打算使用Maven安装命令:
mvn install:install-file -Dfile=path -DpomFile=path
将jar添加到我的maven资源库中,以便我可以在我的代码中使用它。
我无法弄清楚如何为jar编写pom文件,因此至少包含jar jar和标准jar文件。
这是我到目前为止所做的:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sun</groupId>
<artifactId>yanfs</artifactId>
<version>1.2</version>
<description>Artifactory auto generated POM</description>
</project>
还有其他人知道还需要包含哪些内容吗?
答案 0 :(得分:1)
你无法知道在这里写些什么。 POM是一个绑定到您依赖的项目的文件。如果这个项目没有用它分发POM文件,你可能会运气不好。该文件应该包含工件的所有传递依赖性,但也包含很多其他东西,例如它的许可。你无法做到这一点。
您可以查看yanfs.jar
内部,看看其中是否有嵌入的POM文件。如果有,则应该在META-INF/maven/{groupId}/{artifactId}
下,并且您无需告知maven-install-plugin
有关它,因为安装期间it will find it automatically:
如果JAR是由Apache Maven构建的,它将在META-INF目录的子文件夹中包含一个pom.xml,默认情况下将会读取该文件。
否则,除了maven-install-plugin
generate a POM借助generatePom
属性之外,您无能为力。请注意,您上传的POM也可能由您的Artifactory服务器(给定其内容)生成。
关于其他工件yanfs-javadoc.jar
和yanfs-sources.jar
,您可以使用javadoc
和sources
属性告诉maven-install-plugin
他们。
您将拥有以下命令:
mvn install:install-file -Dfile=yanfs.jar -Dsources=yanfs-sources.jar -Djavadoc=yanfs-javadoc.jar
答案 1 :(得分:1)
我建议不要打扰创建pom文件,而只是让Maven为你安装它并找出它们的pom.xml。
您想要的一个关键属性是classifier
。
mvn install:install-file -Dfile=yanfs.jar -DartifactId=yanfs -DgroupId=com.sun -Dversion=0.0.1
mvn install:install-file -Dfile=yanfs-javadoc.jar -DartifactId=yanfs -DgroupId=com.sun -Dversion=0.0.1 -Dclassifier=javadoc
mvn install:install-file -Dfile=yanfs-sources.jar -DartifactId=yanfs -DgroupId=com.sun -Dversion=0.0.1 -Dclassifier=sources
您可以在一行中执行的另一种方法是使用sources
和javadoc
属性:
mvn install:install-file -Dfile=yanfs.jar \
-Djavadoc=yanfs-javadoc.jar \
-Dsources=yanfs-sources.jar \
-DartifactId=yanfs -DgroupId=com.sun -Dversion=0.0.1
install:install-file页面显示了所有可能的选项。
答案 2 :(得分:0)
您可能希望在pom中添加“build”部分,并根据自己的喜好添加maven-source-plugin [1]和maven-jar-plugin [2]。
[1] https://maven.apache.org/plugins/maven-source-plugin/usage.html
[2] https://maven.apache.org/plugins/maven-jar-plugin/usage.html
编辑:我误解了你的问题,我认为你试图通过从源代码本地构建它们并使用maven构建它们来生成这些第三方依赖项,以便生成项目消耗所需的元数据。如果这些依赖项是开源的,那么这是您的问题的潜在选择。