我是常春藤的新人。
我正在使用打包程序解析程序,该打包程序解析程序解析zip文件,解压缩它,在临时构建文件中从中提取jar文件,但它暂时保留,并且只保留我指定为模块名称的jar文件被复制到目的地的其余部分被忽略。有没有办法可以获得所有的jar文件?我使用preseverBuildDirectories但是有更好的方法吗?
我是否可以使用普通常春藤向svn发布工件?我在使用ant 1.8.0 java.illegalArguementException尝试在XP上使用ivy 2.1.0时出现错误,说授权失败。有没有办法可以通过常春藤工作:发布?
我有没有办法在packager.xml中使用常春藤变量?
提前致谢, 阿尔马斯
答案 0 :(得分:2)
您需要为重新打包的模块包含一个列出所有工件的常春藤文件。
这是我下载与Solr发行版相关联的文件的示例
<强> ivysettings.xml 强>
<ivysettings>
<settings defaultResolver="maven2"/>
<caches defaultCacheDir="${user.home}/.ivy2/cache"/>
<resolvers>
<ibiblio name="maven2" m2compatible="true"/>
<packager name="repackage" buildRoot="${user.home}/.ivy2/packager/build" resourceCache="${user.home}/.ivy2/packager/cache" preserveBuildDirectories="false">
<ivy pattern="file:///${ivy.settings.dir}/packager/[organisation]/[module]/ivy-[revision].xml"/>
<artifact pattern="file:///${ivy.settings.dir}/packager/[organisation]/[module]/packager-[revision].xml"/>
</packager>
</resolvers>
<modules>
<module organisation="org.apache.solr" name="solr" resolver="repackage"/>
</modules>
</ivysettings>
请注意打包程序解析程序如何指定常春藤和打包程序文件的路径。
ivy文件指定出版物部分中包的一部分的工件。
<强>打包器/ org.apache.solr / solr的/常春藤1.4.0.xml 强>
<ivy-module version="2.0">
<info organisation="org.apache.solr" module="solr" revision="1.4.0"/>
<configurations>
<conf name="jars" description="Jars released with SOLR distribution"/>
<conf name="webapps" description="Web applications"/>
</configurations>
<publications>
<!-- jars -->
<artifact name="solr-cell" conf="jars"/>
<artifact name="solr-clustering" conf="jars"/>
<artifact name="solr-core" conf="jars"/>
<artifact name="solr-dataimporthandler" conf="jars"/>
<artifact name="solr-dataimporthandler-extras" conf="jars"/>
<!-- webapps -->
<artifact name="solr" type="war" conf="webapps"/>
</publications>
</ivy-module>
packager文件包含复制出 solr 模块的常春藤文件中列出的每个工件的逻辑。
<强>打包器/ org.apache.solr / solr的/打包器-1.4.0.xml 强>
<packager-module version="1.0">
<property name="name" value="${ivy.packager.module}"/>
<property name="version" value="${ivy.packager.revision}"/>
<resource dest="archive" url="http://ftp.heanet.ie/mirrors/www.apache.org/dist/lucene/solr/1.4.0/apache-solr-1.4.0.tgz" sha1="521d4d7ce536dd16c424a11ae8837b65e6b7bd2d">
<url href="http://www.apache.org/dist/lucene/solr/1.4.0/apache-solr-1.4.0.tgz"/>
</resource>
<build>
<!-- Jar artifacts -->
<move file="archive/apache-${name}-${version}/dist/apache-${name}-cell-${version}.jar" tofile="artifacts/jars/${name}-cell.jar"/>
<move file="archive/apache-${name}-${version}/dist/apache-${name}-clustering-${version}.jar" tofile="artifacts/jars/${name}-clustering.jar"/>
<move file="archive/apache-${name}-${version}/dist/apache-${name}-core-${version}.jar" tofile="artifacts/jars/${name}-core.jar"/>
<move file="archive/apache-${name}-${version}/dist/apache-${name}-dataimporthandler-${version}.jar" tofile="artifacts/jars/${name}-dataimporthandler.jar"/>
<move file="archive/apache-${name}-${version}/dist/apache-${name}-dataimporthandler-extras-${version}.jar" tofile="artifacts/jars/${name}-dataimporthandler-extras.jar"/>
<!-- War artifacts -->
<move file="archive/apache-${name}-${version}/dist/apache-${name}-${version}.war" tofile="artifacts/wars/${name}.war"/>
</build>
</packager-module>
我自己从未使用过它,但我认为你需要配置subversion resolver并使用它来发布你的工件
上面列出的打包程序文件使用两个常春藤变量。不确定你的问题是什么。
常春藤文件的出版物部分包含第三方jar名称中的版本号:
常春藤文件
..
<publications>
<artifact name="abc-1.0" conf="jars"/>
<artifact name="pqr-2.0" conf="jars"/>
</publications>
..
打包文件
..
<build>
<move file="archive/apache-${name}-${version}/dist/abc-1.0.jar" tofile="artifacts/jars/abc-1.0.jar"/>
<move file="archive/apache-${name}-${version}/dist/pqr-2.0.jar" tofile="artifacts/jars/pqr-2.0.jar"/>
</build>
..