Ivy - Can't download because POM file and the JAR file name aren't matching patterns

穿精又带淫゛_ 提交于 2019-11-27 07:22:15

问题


me again with IVY.

The problem now is that the ivy file the POM file to the JSON library is called:

http://repo1.maven.org/maven2/net/sf/json-lib/json-lib/2.4/json-lib-2.4.pom

json-lib-2.4.pom

But the JAR file is called:

json-lib-2.4-jdk13.jar

The -jdk13 makes it so that the pom file cannot be found.

Ergo it can't download the JAR file because it says this:

== resolving dependencies egencia#com.egencia.test.framework;working@ESFVMVI-750->net.sf.json-lib#json-lib;2.4 [default->compile]
[ivy:resolve]       tried http://repo1.maven.org/maven2/net/sf/json-lib/json-lib/2.4/json-lib-2.4-jdk13.jar
[ivy:resolve]   maven: no ivy file found for net.sf.json-lib#json-lib;2.4: using default data
[ivy:resolve]   found net.sf.json-lib#json-lib;2.4 in maven

Now.. I managed to put a pattern in which finds the JAR file, adding the -jdk13 to it.. But this way the POM file is no longer found.

After that, there is no downloaded JAR file and of course the build failes because of the missing dep.

So... can I somehow configure the POM to be something else as the JAR files name?

THANKS!!


回答1:


It's called a classifier attribute in Maven. Try declaring your dependency as follows:

<ivy-module version='2.0' xmlns:m="http://ant.apache.org/ivy/maven">
    ..
    <dependencies>
        ..
        <dependency org="net.sf.json-lib" name="json-lib" rev="2.4"> 
            <artifact name="json-lib" type="jar" m:classifier="jdk13"/>
        </dependency>
        ..
    </dependencies>
</ivy-module>

This will retrieve the associated artifact rather than the default primary artifact from the Maven module.

Update

This ivy dependency declaration is functionally the same as the following in Maven

<dependency>
  <groupId>net.sf.json-lib</groupId>
  <artifactId>json-lib</artifactId>
  <version>2.4</version>
  <classifier>jdk13</classifier>
</dependency>


来源:https://stackoverflow.com/questions/6942989/ivy-cant-download-because-pom-file-and-the-jar-file-name-arent-matching-patt

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!