You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Benjamin Bentmann (JIRA)" <ji...@codehaus.org> on 2008/02/03 00:14:57 UTC

[jira] Commented: (MDEP-122) Analyze target does not work correctly when only using a constant defined in a different module

    [ http://jira.codehaus.org/browse/MDEP-122?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_122167 ] 

Benjamin Bentmann commented on MDEP-122:
----------------------------------------

As stated in [Clarifications and Amendments to the JLS, Class Initialization|http://java.sun.com/docs/books/jls/clarify.html], a Java compiler must replace any references to a compile-time constant with a copy of its value. Hence, an analysis of the mere bytecode as done by the plugin via ASM cannot detect such dependencies.

> Analyze target does not work correctly when only using a constant defined in a different module
> -----------------------------------------------------------------------------------------------
>
>                 Key: MDEP-122
>                 URL: http://jira.codehaus.org/browse/MDEP-122
>             Project: Maven 2.x Dependency Plugin
>          Issue Type: Bug
>    Affects Versions: 2.0-alpha-4
>         Environment: Windows.
> Maven 2.0.6
> Java 1.5 compiler
>            Reporter: Iker Almandoz
>            Assignee: Brian Fox
>            Priority: Minor
>         Attachments: analyze.zip, maven_bug.zip
>
>
> I have 2 projects as seen in the attached files.
> My first project contains a single interface that defines a String constant.
> My second project, uses the String constant from my first project.
> When i try to use dependency:analyze to fail the build as seen below, i can't make the system work.
> If i add the dependency from project 2 to project 1, i get:
> [INFO] [dependency:analyze {execution: analyze}]
> [INFO] Used declared dependencies:
> [INFO]    None
> [INFO] Used undeclared dependencies:
> [WARNING]    None
> [INFO] Unused declared dependencies:
> [INFO]    test:project1:jar: 1.0-SNAPSHOT:compile
> [WARNING] Potential problems discovered.
> But if i remove it, i get:
> If i remove the supposedly unused dependency, then I get a compile error:
> [INFO] ------------------------------------------------------------------------
> [ERROR] BUILD FAILURE
> [INFO] ------------------------------------------------------------------------
> [INFO] Compilation failure
> C:\ASSIA\development\maven_bug\project2\src\main\java\project2\NamesUser.java:[6
> ,24] package project1 does not exist
> Here is the build definition i have...
>     <build>
>     <plugins>
>      <plugin>
>         <groupId>org.apache.maven.plugins</groupId>
>         <artifactId>maven-dependency-plugin</artifactId>
>         <executions>
>           <execution>
>             <id>analyze</id>
>             <phase>package</phase>
>             <goals>
>               <goal>analyze</goal>
>             </goals>
>             <configuration>
>                 <failBuild>true</failBuild>
>                 <ignoreDirect>false</ignoreDirect>
>             </configuration>
>           </execution>
>         </executions>
>       </plugin>
>     </plugins>
>   </build>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira