2017-02-10 26 views
0

我換一個pom.xml進入斑馬線到3.3.0爲什麼zxing不能和ant/java8和pom.xml一起玩呢?

<dependency> 
     <groupId>com.google.zxing</groupId> 
     <artifactId>core</artifactId> 
     <version>3.3.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.zxing</groupId> 
     <artifactId>javase</artifactId> 
     <version>3.3.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.google.zxing</groupId> 
     <artifactId>zxing-parent</artifactId> 
     <version>3.3.0</version> 
     <type>pom</type> 
    </dependency> 

,現在我得到這樣的:

[artifact:dependencies] Unable to resolve artifact: Unable to get dependency information: Unable to read the metadata file for artifact 'com.github.jai-imageio:jai-imageio-core:jar': Invalid JDK version in profile 'java8-and-higher': Unbounded range: [1.8, for project com.github.jai-imageio:jai-imageio-core 
[artifact:dependencies] com.github.jai-imageio:jai-imageio-core:jar:1.3.1 

從我能找到這表明什麼是錯用pom與zxing相關的所需版本的java文件(我正在使用java 8)?

代碼使用Maven和Eclipse編譯得很好,但是當嘗試運行單獨的ant進程時會發生此錯誤。

<artifact:dependencies filesetId="dependency.fileset"> 
    <artifact:pom file="${basedir}/pom.xml"/> 
</artifact:dependencies> 

螞蟻任務工作得很好,如果我在pom中使用zxing 2.2但當然我的代碼沒有。 這是一個zwing 3.3.0的錯誤還是我錯過了什麼?

回答

1

問題的原因是pomjai-imageio:jai-imageio-core:jar:1.3.1

Maven有下列行

<profile> 
    <id>java8-and-higher</id> 
    <activation> 
    <jdk>[1.8,</jdk> 
    </activation> 
... 

對於一個醜陋的解決問題,你可以在你的本地庫打開pom和激活值更改爲

<profile> 
    <id>java8-and-higher</id> 
    <activation> 
    <jdk>[1.8,)</jdk> 
    </activation> 
... 

另一種辦法是改變你的Maven版本。某些版本在解釋錯誤語法時沒有問題。這也應該是爲什麼你經歷了用eclipse和ant構建不同結果的答案。

+0

所以你要說找到我在本地獲得的com.google.zxing 3.3.0的pom文件並更改該文件。我想這意味着無法在我自己的pom文件中覆蓋這個不好的設置。我有這個正確嗎? – kasdega

+0

@ kasdega,沒錯。但是你必須改變jai-imageio的pom:jai-imageio-core:jar:1.3.1不是zxing。 –

+0

因爲這隻影響我只在本地做的事情,所以我砍掉了imageio的pom並且工作。感謝您的幫助。 – kasdega

相關問題