Maven 发送一个pom.xml,表示jar包含依赖项
我有一个使用ApacheCommons IO依赖项的开源项目 我不使用Maven构建,只使用Ant,最终的Maven 发送一个pom.xml,表示jar包含依赖项,maven,ant,dependencies,pom.xml,sonatype,Maven,Ant,Dependencies,Pom.xml,Sonatype,我有一个使用ApacheCommons IO依赖项的开源项目 我不使用Maven构建,只使用Ant,最终的jar包含Apache Commons IO依赖项:目的是用户不需要设置CLASSPATH 因此二进制版本只包含一个jar。假设它的名称是project-1.0.jar 现在我想把我的项目包括在Maven Central中 我创建了一个pom.xml,其中包含编译所需的Commons IO依赖项: <dependency> <groupId>commons-i
jar
包含Apache Commons IO依赖项:目的是用户不需要设置CLASSPATH
因此二进制版本只包含一个
jar
。假设它的名称是project-1.0.jar
现在我想把我的项目包括在Maven Central中
我创建了一个pom.xml
,其中包含编译所需的Commons IO依赖项:
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
公地io
公地io
2.4
我像往常一样,向Sonatype发送project-1.0.jar
,project-1.0-sources.jar
和project-1.0-javadoc.jar
如何在pom.xml
中声明project-1.0.jar
已经包含依赖项
这样做可能/合法吗?如果没有,其他选项是什么 (我希望为Maven用户和非Maven用户保留相同的构建,以简化构建、测试和维护。) 谢谢,
尼科参见:
- 范围:
...- 提供的-这很像编译,但表示您希望JDK或容器在运行时提供它。它仅在编译和测试类路径上可用,不可传递
- 范围:
...- 提供的-这很像编译,但表示您希望JDK或容器在运行时提供它。它仅在编译和测试类路径上可用,不可传递
在这个简单的例子中,只需使用define commons io作为依赖项即可。其余的将由maven处理。我建议您也开始使用Maven,这也会让您的生活更轻松。在这个简单的例子中,只需使用define commons io作为依赖项即可。其余的将由maven处理。我可以建议您也开始使用Maven,这也会让您的生活更轻松。只是不要这样做。jar应该包含类,并且只包含类。一、 作为用户,可能需要在库中使用其他版本的commons io。我甚至不确定你是否可以在Maven Central上自己的库中重新发布commons io。Maven的全部目的是为您设置类路径。因此,对于使用Maven的开发人员来说,设置类路径不是问题。谢谢,这非常有说服力。你能把它作为一个答案发布吗?如果你真的有一个这样的用例,你不知何故与第三方库的特定版本绑定在一起,那么将该库重新打包并内部化到你自己的源代码中可能是有意义的。在他们所有的包前面加上你自己的,并将源代码放到你项目的源代码树中。@David,谢谢,但这不是我的问题。只是不要这样做。jar应该包含类,并且只包含类。一、 作为用户,可能需要在库中使用其他版本的commons io。我甚至不确定你是否可以在Maven Central上自己的库中重新发布commons io。Maven的全部目的是为您设置类路径。因此,对于使用Maven的开发人员来说,设置类路径不是问题。谢谢,这非常有说服力。你能把它作为一个答案发布吗?如果你真的有一个这样的用例,你不知何故与第三方库的特定版本绑定在一起,那么将该库重新打包并内部化到你自己的源代码中可能是有意义的。在他们的所有包前面加上你自己的,并将源代码放到项目的源代码树中。@David,谢谢,但这不是我的问题。