2010-01-31 64 views
2

maven-animal-sniffer插件承諾告訴我,我的代碼是否有任何對Java 1.6(或更新版本)API的引用。這對我們這些在MacOSX雪豹(只有官方1.6版本)上開發但需要交付到1.5個環境的人很重要。有人有動物嗅探器插件工作?

不幸的是,當試圖使用它時,我將所有Java API調用報告爲違規。

我不是唯一一個遇到這個問題的人,但顯然很多其他人都成功了。

如果有人爲此目的有一個工作POM片段,它會做出真正有用的答案。

請注意,我正在嘗試使用中央(1.4)發佈的版本,而不是org.jvnet上的版本(1.2)。

回答

4

我用下面的配置成功的項目,必須用一個1.4 JVM上運行:

<project> 
    ... 
    <properties> 
    <jdk.level>1.4</jdk.level> 
    </properties> 
    ... 
    <build> 
    <pluginManagement> 
     <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.0.2</version> 
      <configuration> 
      <source>${jdk.level}</source> 
      <target>${jdk.level}</target> 
      </configuration> 
     </plugin> 
     ... 
     </plugins> 
    </pluginManagement> 
    <plugins> 
     <plugin> 
     <groupId>org.jvnet</groupId> 
     <artifactId>animal-sniffer</artifactId> 
     <version>1.2</version> 
     <executions> 
      <execution> 
      <id>animal-sniffer</id> 
      <phase>compile</phase> 
      <goals> 
       <goal>check</goal> 
      </goals> 
      <configuration> 
       <signature> 
       <groupId>org.jvnet.animal-sniffer</groupId> 
       <artifactId>java${jdk.level}</artifactId> 
       <version>1.0</version> 
       </signature> 
      </configuration> 
      </execution> 
     </executions> 
     <dependencies> 
      <dependency> 
      <groupId>org.jvnet.animal-sniffer</groupId> 
      <artifactId>java${jdk.level}</artifactId> 
      <version>1.0</version> 
      <type>sig</type> 
      </dependency> 
     </dependencies> 
     </plugin> 
     ... 
    </plugins> 
    </build> 
</project> 
+0

好的,我會試一試。 – bmargulies 2010-02-01 01:18:24

+0

我不知道什麼會發現這一點。 – bmargulies 2010-02-01 01:38:04

+0

好吧,明白了。它的工作原理。無論在中央1.4版本中是錯誤的,而不是在這裏。 – bmargulies 2010-02-01 01:51:31

2

與不同版本的動物嗅探器的戰鬥,收集從這裏涉及到它的信息位之後並在那裏,我終於設法使用它=)

有關可用簽名及其maven座標列表請參閱http://mojo.codehaus.org/signatures/。沒有必要聲明對簽名的依賴。

下面的示例給出了一個手動的正確配置(MVN清潔編譯動物嗅探:檢查)覈對的Java 1.5:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>animal-sniffer-maven-plugin</artifactId> 
    <version>1.6</version> 
    <configuration> 
     <signature> 
      <groupId>org.codehaus.mojo.signature</groupId> 
      <artifactId>java15</artifactId> 
      <version>1.0</version> 
     </signature> 
    </configuration> 
</plugin> 

下面的例子中,除了使能夠手動檢查簽名,在驗證階段也會自動運行動物嗅探器檢查目標:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>animal-sniffer-maven-plugin</artifactId> 
    <version>1.6</version> 
    <configuration> 
     <signature> 
      <groupId>org.codehaus.mojo.signature</groupId> 
      <artifactId>java15</artifactId> 
      <version>1.0</version> 
     </signature> 
    </configuration> 
    <executions> 
     <execution> 
      <id>animal-sniffer</id> 
      <phase>verify</phase> 
      <goals> 
       <goal>check</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin>