当存在依赖关系时,在ivy.xml中定义,例如:
<dependency org="com.company" name="mypackage" rev="6.0.0"/>
在构建中.xml,我让常春藤检索它。然后,它会下载一个名称中包含版本 ID 的文件。例如,库/我的包-6.0.0.zip
我如何知道版本(6.0.0)或我的ANT构建中的全名,而不用手动/去重复ivy.xml中的版本?
我希望能够做这样的事情:
<unzip src="lib/mypackage-${version}.zip" ...
一种方法是使用 artifactpropery 任务,根据类似于检索任务工作方式的模式,使用依赖项版本设置属性。
<ivy:artifactproperty name="[artifact].ver" value="[revision]"/>
<echo message="Version: ${slf4j-api.ver}"/>
我的替代首选项是使用配置,只需在构建工作区中创建一个文件名没有修订版的文件,如下所示:
<ivy:retrieve pattern="target/zips/[artifact].[ext]" conf="zips"/>
这需要一个 ivy 文件,该文件具有特殊的“zips”配置设置和依赖项声明上的配置映射:
<dependency org="org.slf4j" name="slf4j-api" rev="1.7.5" conf="zips->default"/>
在本例中,在“lib”目录下设置了3个不同的类路径,并且用一个jar文件填充了一个zips目录,其文件名中没有修订:
├── build.xml
├── ivy.xml
├── lib
│ ├── compile
│ │ └── slf4j-api-1.7.5.jar
│ ├── runtime
│ │ ├── log4j-1.2.17.jar
│ │ ├── slf4j-api-1.7.5.jar
│ │ └── slf4j-log4j12-1.7.5.jar
│ └── test
│ ├── hamcrest-core-1.3.jar
│ ├── junit-4.11.jar
│ ├── log4j-1.2.17.jar
│ ├── slf4j-api-1.7.5.jar
│ └── slf4j-log4j12-1.7.5.jar
└── target
└── zips
└── slf4j-api.jar
<project name="demo" default="build" xmlns:ivy="antlib:org.apache.ivy.ant">
<target name="resolve">
<ivy:resolve/>
</target>
<target name="build" depends="resolve">
<!-- Populate the "lib" directory -->
<ivy:retrieve pattern="lib/[conf]/[artifact]-[revision](-[classifier]).[ext]" conf="compile,runtime,test"/>
<!-- Populate the "target/zips" directory -->
<ivy:retrieve pattern="target/zips/[artifact].[ext]" conf="zips"/>
</target>
</project>
<ivy-module version="2.0">
<info organisation="com.myspotontheweb" module="demo"/>
<configurations>
<conf name="compile" description="Required to compile application"/>
<conf name="runtime" description="Additional run-time dependencies" extends="compile"/>
<conf name="test" description="Required for test only" extends="runtime"/>
<conf name="zips" description="Additional configuration for demo"/>
</configurations>
<dependencies>
<!-- zips + compile dependencies -->
<dependency org="org.slf4j" name="slf4j-api" rev="1.7.5" conf="zips,compile->default"/>
<!-- runtime dependencies -->
<dependency org="org.slf4j" name="slf4j-log4j12" rev="1.7.5" conf="runtime->default"/>
<!-- test dependencies -->
<dependency org="junit" name="junit" rev="4.11" conf="test->default"/>
</dependencies>
</ivy-module>
注意:
问题内容: 我希望能够将iOS项目/应用程序的当前版本作为对象,而不必在文件中的某个位置定义常量。我不想在2个地方更改版本值。 当我在“项目”目标摘要中更改版本时,需要更新该值。 问题答案: 您可以获取版本和内部版本号,如下所示: 或在Objective-C中 我在以下类别中具有以下方法: 要点: https : //gist.github.com/ashleymills/6ec9fce6d7ec
问题内容: 在处理POM之后,Jenkins构建有什么方法可以知道项目的Maven版本号吗? 我有一些项目由Maven控制版本控制,在构建后的工作中,我们想创建一个Debian软件包并调用一些shell脚本。我需要的是Maven以前可以用作Jenkins环境变量的版本号,因此我可以将其传递给构建后操作。 需要明确的是,我 没有 需要知道如何让詹金斯版本号传递到Maven的; 相反,我希望Maven
问题内容: 在Stack Overflow上有关于操作系统版本的问题,但没有关于Windows名称的问题,我希望使用Node.js找出Windows名称。 我研究了,,和using 等许多模块,发现它们对获取操作系统说明,进程环境等很有帮助。我也可以将其用于Linux或Windows,即我正在使用的平台。 但是,如何检查使用Node.js在系统上安装的是Windows 7还是Windows 7?
问题内容: 我正在使用由maven2管理的Java Web应用程序。我们有时会进行一些更改,并希望发布新版本,当然还有新版本号。在首页(jsp)中,有类似 是否有可能,每次执行新发行版时,仅更改pom.xml中的内容,而该maven $ {project.version}会自动填充jsp中的版本号吗? 我尝试了Maven配置文件,但是它似乎不起作用。 有任何想法吗? 谢谢。 问题答案: 也许这很愚
在订单类中,我们有UUID和其他字段: 解析器可以是这样的: 我知道它不起作用,那么如何实现下一个项目呢?UUID 是否基于时间并且可以用作索引?
问题内容: 我有一个Cordova项目,并且正在为其构建一个android插件。然后,我的插件使用了使用菱形运算(<>)的库。我尝试运行它,但收到此错误: 当我跑步时: 我在发布之前先进行研究,有些人通过将ant更改为 但这对我没有用。 我还尝试制作一个文件来设置和,但是它似乎只是在解析主项目,而不是我在插件上使用的子项目。 问题答案: 好的,对我有用的是添加插件使用的所有子项目(库)作为yout