用于获取常春藤管理的依赖项的jar路径的命令

时间:2015-10-25 16:00:32

标签: ivy

是否有办法获取常春藤管理的依赖项的JAR文件的路径,以便可以从命令行调用程序,并且JAR文件都正确地包含在类路径中。

有些事情(对于Linux bash和类似的脚本):

java -cp `ivyget.sh ivy.xml`

然后可以扩展到

java -cp "/path/to/first.jar:/path/to/second.jar"

这样的事情可能吗?

1 个答案:

答案 0 :(得分:0)

Ivy可以独立使用,请参阅documentation。我在下面列举了一个例子。

虽然这是一个漂亮的功能,但我更喜欢使用常春藤进行下载。如果您的java程序有选项(例如-option1或--option2),则ivy无法正确解析命令行。

实施例

以下项目用于使用liquibase

管理数据库架构
├── changesets
│   └── scottTiger.xml
├── ivy.xml
├── liquibase.properties
└── liquibase.sh

通过运行shell脚本

来执行项目
./liquibase.sh update

liquibase.sh

#!/bin/bash
java -jar $HOME/.ant/lib/ivy.jar \
     -error \
     -ivy ivy.xml \
     -main liquibase.integration.commandline.Main \
     -args $@

的ivy.xml

ivy文件将liquibase和H2数据库项目作为依赖项

拉入
<ivy-module version="2.0">
    <info organisation="com.myspotontheweb" module="demo"/>
    <dependencies>
        <dependency org="org.liquibase" name="liquibase-core" rev="latest.release" conf="default"/>
        <dependency org="com.h2database" name="h2" rev="latest.release" conf="default"/>
    </dependencies>
</ivy-module>

liquibase.properties

运行时配置文件,其中DB类型设置为H2。

url=jdbc:h2:./db/scottTiger
driver=org.h2.Driver
username=user
password=pass
changeLogFile=changesets/scottTiger.xml
logLevel=info