You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildr.apache.org by "Geoffrey Ruscoe (JIRA)" <ji...@apache.org> on 2008/07/29 01:42:31 UTC

[jira] Created: (BUILDR-110) error creating buildfile from pom

error creating buildfile from pom
---------------------------------

                 Key: BUILDR-110
                 URL: https://issues.apache.org/jira/browse/BUILDR-110
             Project: Buildr
          Issue Type: Bug
          Components: Core features
    Affects Versions: 1.3.2, 1.3.1
            Reporter: Geoffrey Ruscoe


When using option to create buildfile from maven2 pom I got the following error (after I turned on trace)
rake aborted!
undefined method `find' for nil:NilClass
/usr/local/jruby-1.1.3/lib/ruby/gems/1.8/gems/buildr-1.3.2-java/lib/buildr/core/generate.rb:153:in `from_maven2_pom'

After looking into the issue I found that the code in question was the following:


        plugins = project['build'].first['plugins'].first['plugin'] rescue {}
        compile_plugin = plugins.find{|pl| (pl['groupId'].nil? or pl['groupId'].first == 'org.apache.maven.plugins') and pl['artifactId'].first == 'maven-compiler-plugin'}
        if compile_plugin
          source = compile_plugin.first['configuration'].first['source'] rescue nil
          target = compile_plugin.first['configuration'].first['target'] rescue nil

          script << "  compile.options.source = '#{source}'" if source
          script << "  compile.options.target = '#{target}'" if target
        end

my projects use a parent pom which specifies some of the plugins, so I think that some of them may not have any.  All I did for a fix was to wrap with the test for nil.  While this worked for me (at least to create my buildfile).  I am just starting to learn the source, so this patch will need a more expert opinion.

        plugins = project['build'].first['plugins'].first['plugin'] rescue {}
        if plugins != nil
          compile_plugin = plugins.find{|pl| (pl['groupId'].nil? or pl['groupId'].first == 'org.apache.maven.plugins') and pl['artifactId'].first == 'maven-compiler-plugin'}
          if compile_plugin
            source = compile_plugin.first['configuration'].first['source'] rescue nil
            target = compile_plugin.first['configuration'].first['target'] rescue nil

            script << "  compile.options.source = '#{source}'" if source
            script << "  compile.options.target = '#{target}'" if target
          end
        end




-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (BUILDR-110) error creating buildfile from pom

Posted by "Assaf Arkin (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/BUILDR-110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Assaf Arkin resolved BUILDR-110.
--------------------------------

       Resolution: Fixed
    Fix Version/s: 1.3.3

> error creating buildfile from pom
> ---------------------------------
>
>                 Key: BUILDR-110
>                 URL: https://issues.apache.org/jira/browse/BUILDR-110
>             Project: Buildr
>          Issue Type: Bug
>          Components: Core features
>    Affects Versions: 1.3.1, 1.3.2
>            Reporter: Geoffrey Ruscoe
>             Fix For: 1.3.3
>
>
> When using option to create buildfile from maven2 pom I got the following error (after I turned on trace)
> rake aborted!
> undefined method `find' for nil:NilClass
> /usr/local/jruby-1.1.3/lib/ruby/gems/1.8/gems/buildr-1.3.2-java/lib/buildr/core/generate.rb:153:in `from_maven2_pom'
> After looking into the issue I found that the code in question was the following:
>         plugins = project['build'].first['plugins'].first['plugin'] rescue {}
>         compile_plugin = plugins.find{|pl| (pl['groupId'].nil? or pl['groupId'].first == 'org.apache.maven.plugins') and pl['artifactId'].first == 'maven-compiler-plugin'}
>         if compile_plugin
>           source = compile_plugin.first['configuration'].first['source'] rescue nil
>           target = compile_plugin.first['configuration'].first['target'] rescue nil
>           script << "  compile.options.source = '#{source}'" if source
>           script << "  compile.options.target = '#{target}'" if target
>         end
> my projects use a parent pom which specifies some of the plugins, so I think that some of them may not have any.  All I did for a fix was to wrap with the test for nil.  While this worked for me (at least to create my buildfile).  I am just starting to learn the source, so this patch will need a more expert opinion.
>         plugins = project['build'].first['plugins'].first['plugin'] rescue {}
>         if plugins != nil
>           compile_plugin = plugins.find{|pl| (pl['groupId'].nil? or pl['groupId'].first == 'org.apache.maven.plugins') and pl['artifactId'].first == 'maven-compiler-plugin'}
>           if compile_plugin
>             source = compile_plugin.first['configuration'].first['source'] rescue nil
>             target = compile_plugin.first['configuration'].first['target'] rescue nil
>             script << "  compile.options.source = '#{source}'" if source
>             script << "  compile.options.target = '#{target}'" if target
>           end
>         end

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.