我有一个使用Apache Commons IO依赖项的开源项目。
我不使用Maven,只使用Ant,最终的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>
我发送给Sonatype的project-1.0.jar
, project-1.0-sources.jar
和project-1.0-javadoc.jar
,像往常一样。
我如何在pom.xml
中声明project-1.0.jar
已经包含依赖关系?
这样做可能/合法吗?
如果没有,还有其他选择吗?
(我希望为Maven用户和非Maven用户保持相同的构建,以简化构建,测试和维护。)
谢谢,
尼科
参见POM参考资料,依赖性:
- 范围:
…
- …
- 提供 -这很像compile,但表明您希望JDK或容器在运行时提供它。它仅在编译和测试类路径上可用,并且不可传递。
- …
在这个简单的例子中,只使用define commons-io作为依赖项,就是这样。其余的将由maven处理。我建议您也开始使用Maven,这会使您的工作更轻松。