如何为Maven Install的jar编写POM文件?

时间:2016-01-15 15:45:51

标签: java maven jar pom.xml

我有一组广告,yanfs.jaryanfs-javadoc.jaryanfs-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>

还有其他人知道还需要包含哪些内容吗?

3 个答案:

答案 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.jaryanfs-sources.jar,您可以使用javadocsources属性告诉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

您可以在一行中执行的另一种方法是使用sourcesjavadoc属性:

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构建它们来生成这些第三方依赖项,以便生成项目消耗所需的元数据。如果这些依赖项是开源的,那么这是您的问题的潜在选择。