我想使用 Apache Ivy 来解决我在 Java 项目中的一些依赖项(导入)。我使用的是 NetBeans 7.1.2(Java EE 版本)。我已经安装了IvyBeans插件(版本1.2)。然后我构建了我的项目,Ivy在我的项目文件夹中创建了IvyFiles和IvyLibraries文件夹(它们都是空的)。问题是没有解决任何库。我从构建器获得以下消息:
[PATH_TO_PROJECT]nbprojectivy-impl.xml:92: settings file does not exist: [PATH_TO_PROJECT]${ivy.settings.location}
这是常春藤解析输出:
Resolving COMPILE scope ...
:: loading settings :: url = jar:file:/C:/Users/jakub/.netbeans/7.1.2/modules/ext/ivy-2.1.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
:: resolving dependencies :: IvyThriftApp#IvyThriftApp;1.0
confs: [compile]
:: resolution report :: resolve 6ms :: artifacts dl 0ms
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| compile | 0 | 0 | 0 | 0 || 0 | 0 |
---------------------------------------------------------------------
Resolving PROCESSOR scope ...
:: loading settings :: url = jar:file:/C:/Users/jakub/.netbeans/7.1.2/modules/ext/ivy-2.1.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
:: resolving dependencies :: IvyThriftApp#IvyThriftApp;1.0
confs: [compile]
:: resolution report :: resolve 3ms :: artifacts dl 0ms
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| compile | 0 | 0 | 0 | 0 || 0 | 0 |
---------------------------------------------------------------------
Resolving RUNTIME scope ...
:: loading settings :: url = jar:file:/C:/Users/jakub/.netbeans/7.1.2/modules/ext/ivy-2.1.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
:: resolving dependencies :: IvyThriftApp#IvyThriftApp;1.0
confs: [compile, runtime]
:: resolution report :: resolve 3ms :: artifacts dl 0ms
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| compile | 0 | 0 | 0 | 0 || 0 | 0 |
| runtime | 0 | 0 | 0 | 0 || 0 | 0 |
---------------------------------------------------------------------
Resolving COMPILE_TEST scope ...
:: loading settings :: url = jar:file:/C:/Users/jakub/.netbeans/7.1.2/modules/ext/ivy-2.1.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
:: resolving dependencies :: IvyThriftApp#IvyThriftApp;1.0
confs: [compile, compile-test]
:: resolution report :: resolve 4ms :: artifacts dl 0ms
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| compile | 0 | 0 | 0 | 0 || 0 | 0 |
| compile-test | 0 | 0 | 0 | 0 || 0 | 0 |
---------------------------------------------------------------------
Resolving RUNTIME_TEST scope ...
:: loading settings :: url = jar:file:/C:/Users/jakub/.netbeans/7.1.2/modules/ext/ivy-2.1.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
:: resolving dependencies :: IvyThriftApp#IvyThriftApp;1.0
confs: [compile, compile-test, runtime, runtime-test]
:: resolution report :: resolve 4ms :: artifacts dl 0ms
---------------------------------------------------------------------
| | modules || artifacts |
| conf | number| search|dwnlded|evicted|| number|dwnlded|
---------------------------------------------------------------------
| compile | 0 | 0 | 0 | 0 || 0 | 0 |
| compile-test | 0 | 0 | 0 | 0 || 0 | 0 |
| runtime | 0 | 0 | 0 | 0 || 0 | 0 |
| runtime-test | 0 | 0 | 0 | 0 || 0 | 0 |
---------------------------------------------------------------------
我这边对Apache Ivy在NetBeans下的工作方式有什么误解吗?我的愿景是在我的项目中使用一些依赖项 - 然后我构建它,Ivy会自动从Internet获取依赖项,我不必关心将所有外部库添加到我的项目中。
有什么建议如何解决这个问题?
非常感谢您的帮助或任何建议:)
看起来你的常春藤决心工作正常。在构建文件中,如何使用解析的 jar 来填充 ANT 项目的类路径?
一个流行的选项是调用 ivy 检索任务来填充本地 lib 目录:
<ivy:retrieve/>
<path id="build.path">
<fileset dir="lib" includes="**/*.jar"/>
</path>
我的偏好和建议是使用 ivy 的缓存路径任务:
<ivy:cachepath pathid="build.path"/>
这里给出了一个更完整的示例(使用 ivy 配置):
用于在多个版本的类路径之间进行选择的 Ant 脚本